Defines | |
#define | ecl_compile_time_concept_check(Model) enum { ecl_concept_check_name(__LINE__) = ecl::concepts::CONCEPT_CHECK< Model >::instantiate } |
Compile time concept checking assertion. | |
#define | ecl_compile_time_concept_test(Model) |
Convenient notational macro for setting up a concept testing function. |
#define ecl_compile_time_concept_check | ( | Model | ) | enum { ecl_concept_check_name(__LINE__) = ecl::concepts::CONCEPT_CHECK< Model >::instantiate } |
Compile time concept checking assertion.
This macro checks a class to verify if it conforms to a compile time metaprogramming concept.
Usage:
The input argument to this macro function is the concept class type with the testing class as its template parameter.
ecl_compile_time_concept_check(MyConcept<A>);
Definition at line 92 of file macros.hpp.
#define ecl_compile_time_concept_test | ( | Model | ) |
ecl_compile_time_concept_check( Model ); \ ~Model()
Convenient notational macro for setting up a concept testing function.
The actual mechanics of concept testing has to be implemented in the concept class' destructor. This macro is purely just a notational convenience that makes it clear when programming the precise meaning of what is intended for your concept class.
Usage:
class MyConcept { public: ecl_compile_time_concept_test(MyConcept) { // compile time concept checks here. } };
Definition at line 116 of file macros.hpp.