BVB Source Codes

mars Show has_constraints.hpp Source code

Return Download mars: download has_constraints.hpp Source code - Download mars Source code - Type:.hpp
  1. // Copyright David Abrahams 2006. Distributed under the Boost
  2. // Software License, Version 1.0. (See accompanying
  3. // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
  4. #ifndef BOOST_CONCEPT_DETAIL_HAS_CONSTRAINTS_DWA2006429_HPP
  5. # define BOOST_CONCEPT_DETAIL_HAS_CONSTRAINTS_DWA2006429_HPP
  6.  
  7. # include <boost/mpl/bool.hpp>
  8. # include <boost/detail/workaround.hpp>
  9. # include <boost/concept/detail/backward_compatibility.hpp>
  10.  
  11. namespace mars_boost {} namespace boost = mars_boost; namespace mars_boost { namespace concepts {
  12.  
  13. namespace detail
  14. {
  15.  
  16. // Here we implement the metafunction that detects whether a
  17. // constraints metafunction exists
  18.   typedef char yes;
  19.   typedef char (&no)[2];
  20.  
  21.   template <class Model, void (Model::*)()>
  22.   struct wrap_constraints {};
  23.    
  24. #if BOOST_WORKAROUND(__SUNPRO_CC, <= 0x580) || defined(__CUDACC__)
  25.   // Work around the following bogus error in Sun Studio 11, by
  26.   // turning off the has_constraints function entirely:
  27.   //    Error: complex expression not allowed in dependent template
  28.   //    argument expression
  29.   inline no has_constraints_(...);
  30. #else
  31.   template <class Model>
  32.   inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
  33.   inline no has_constraints_(...);
  34. #endif
  35. }
  36.  
  37. // This would be called "detail::has_constraints," but it has a strong
  38. // tendency to show up in error messages.
  39. template <class Model>
  40. struct not_satisfied
  41. {
  42.     BOOST_STATIC_CONSTANT(
  43.         bool
  44.       , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
  45.     typedef mpl::bool_<value> type;
  46. };
  47.  
  48. }} // namespace mars_boost::concepts::detail
  49.  
  50. #endif // BOOST_CONCEPT_DETAIL_HAS_CONSTRAINTS_DWA2006429_HPP
  51.  
downloadhas_constraints.hpp Source code - Download mars Source code
Related Source Codes/Software:
Hero - Elegant transition library for iOS & tvOS 2017-06-09
deep-photo-styletransfer - Code and data for paper "Deep Photo Style Transfer... 2017-06-09
mastodon - A GNU Social-compatible microblogging server ... 2017-06-09
plyr - A simple HTML5, YouTube and Vimeo player ... 2017-06-08
prepack - Prepack is a partial evaluator for JavaScript. Pre... 2017-06-08
Public-APIs - 2017-06-09
lottie-ios - An iOS library to natively render After Effects ve... 2017-06-09
Awesome-Hacking - A collection of various awesome lists for hackers,... 2017-06-09
algorithms - Minimal examples of data structures and algorithms... 2017-06-10
lectures - Oxford Deep NLP 2017 course 2017-06-10
CRYENGINE - CRYENGINE is a powerful real-time game development... 2017-06-11
postal - 2017-06-11
reactide - Reactide is the first dedicated IDE for React web ... 2017-06-11
rkt - rkt is a pod-native container engine for Linux. It... 2017-06-11
uWebSockets - Tiny WebSockets https://for... 2017-06-11
realworld - TodoMVC for the RealWorld - Exemplary fullstack Me... 2017-06-11
goreplay - GoReplay is an open-source tool for capturing and ... 2017-06-10
pyenv - Simple Python version management 2017-06-10
redux-saga - An alternative side effect model for Redux apps ... 2017-06-10
angular-starter - 2017-06-10

 Back to top