12345678910111213141516171819202122232425262728293031 |
- // Copyright David Abrahams 2006. Distributed under the Boost
- // Software License, Version 1.0. (See accompanying
- // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- #ifndef BOOST_CONCEPT_CHECK_HAS_CONSTRAINTS_DWA2006429_HPP
- # define BOOST_CONCEPT_CHECK_HAS_CONSTRAINTS_DWA2006429_HPP
- namespace boost { namespace concept_checking {
- // Here we implement the "metafunction" that detects whether a
- // constraints metafunction exists
- typedef char yes;
- typedef char (&no)[2];
- template <class Model, void (Model::*)()>
- struct wrap_constraints {};
-
- template <class Model>
- inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
- inline no has_constraints_(...);
- template <class Model>
- struct has_constraints
- {
- BOOST_STATIC_CONSTANT(
- bool
- , value = sizeof( concept_checking::has_constraints_((Model*)0) ) == 1 );
- };
- }} // namespace boost::concept_checking
- #endif // BOOST_CONCEPT_CHECK_HAS_CONSTRAINTS_DWA2006429_HPP
|