1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- #ifndef BOOST_CONCEPT_DETAIL_HAS_CONSTRAINTS_DWA2006429_HPP
- # define BOOST_CONCEPT_DETAIL_HAS_CONSTRAINTS_DWA2006429_HPP
- # include <boost/type_traits/integral_constant.hpp>
- # include <boost/config/workaround.hpp>
- # include <boost/concept/detail/backward_compatibility.hpp>
- namespace boost { namespace concepts {
- namespace detail
- {
- typedef char yes;
- typedef char (&no)[2];
- template <class Model, void (Model::*)()>
- struct wrap_constraints {};
-
- #if BOOST_WORKAROUND(__SUNPRO_CC, <= 0x580) || defined(__CUDACC__)
-
-
-
-
- inline no has_constraints_(...);
- #else
- template <class Model>
- inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
- inline no has_constraints_(...);
- #endif
- }
- template <class Model>
- struct not_satisfied
- {
- BOOST_STATIC_CONSTANT(
- bool
- , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
- typedef boost::integral_constant<bool, value> type;
- };
- }}
- #endif
|