12 #ifndef ECL_CONCEPTS_MACROS_HPP_ 13 #define ECL_CONCEPTS_MACROS_HPP_ 36 template <
void(*)()>
struct InstantiateConceptCheck {};
44 template <
class Model>
45 void CONCEPT_CHECK_FAILED()
47 ((Model*)0)->~Model();
57 template <
class Model>
60 InstantiateConceptCheck< CONCEPT_CHECK_FAILED<Model> > x;
61 enum { instantiate = 1 };
69 #define ecl_concept_check_name_expand(Name) ConceptCheck ## Name 70 #define ecl_concept_check_name(Name) ecl_concept_check_name_expand(Name) 92 #define ecl_compile_time_concept_check( Model ) \ 93 enum { ecl_concept_check_name(__LINE__) = ecl::concepts::CONCEPT_CHECK< Model >::instantiate } 116 #define ecl_compile_time_concept_test( Model ) \ 117 ecl_compile_time_concept_check( Model ); \ Embedded control libraries.