src/lemon/concept_check.h
changeset 1004 b94037830dc8
parent 986 e997802b855c
child 1022 567f392d1d2e
equal deleted inserted replaced
1:1aef5277a478 2:cf0d6e4af12f
    37     void (Concept::*x)() = & Concept::constraints;
    37     void (Concept::*x)() = & Concept::constraints;
    38     ignore_unused_variable_warning(x);
    38     ignore_unused_variable_warning(x);
    39 #endif
    39 #endif
    40   }
    40   }
    41 
    41 
       
    42   template <typename Concept, typename Type>
       
    43   inline void checkConcept() {
       
    44     function_requires<typename Concept::template Constraints<Type> >();
       
    45   }
       
    46 
    42 #define BOOST_CLASS_REQUIRE(type_var, ns, concept) \
    47 #define BOOST_CLASS_REQUIRE(type_var, ns, concept) \
    43   typedef void (ns::concept <type_var>::* func##type_var##concept)(); \
    48   typedef void (ns::concept <type_var>::* func##type_var##concept)(); \
    44   template <func##type_var##concept Tp1_> \
    49   template <func##type_var##concept Tp1_> \
    45   struct concept_checking_##type_var##concept { }; \
    50   struct concept_checking_##type_var##concept { }; \
    46   typedef concept_checking_##type_var##concept< \
    51   typedef concept_checking_##type_var##concept< \