blueprints.hpp
Go to the documentation of this file.
1 
8 /*****************************************************************************
9 ** Ifdefs
10 *****************************************************************************/
11 
12 #ifndef ECL_CONCEPTS_BLUEPRINTS_HPP_
13 #define ECL_CONCEPTS_BLUEPRINTS_HPP_
14 
15 /*****************************************************************************
16 ** Includes
17 *****************************************************************************/
18 
19 #include "macros.hpp"
20 
21 /*****************************************************************************
22 ** Namespaces
23 *****************************************************************************/
24 
25 namespace ecl {
26 
27 /*****************************************************************************
28 ** Concept [BluePrint]
29 *****************************************************************************/
30 
34 template <typename Implementation>
35 class BluePrintConcept {
36 public:
45  ecl_compile_time_concept_test(BluePrintConcept)
46  {
47  target = blue_print.instantiate();
48  blue_print.apply(target);
49  }
50 
51 private:
52  typename Implementation::base_type target;
53  Implementation blue_print;
54 };
55 
56 }; // namespace ecl
57 
58 #endif /* ECL_CONCEPTS_BLUEPRINTS_HPP_ */
ecl::BluePrintConcept::blue_print
Implementation blue_print
Definition: blueprints.hpp:67
ecl::BluePrintConcept::target
Implementation::base_type target
Definition: blueprints.hpp:66
macros.hpp
Mechanisms enabling compile time checking of metaprogramming concepts.
ecl::BluePrintConcept::ecl_compile_time_concept_test
ecl_compile_time_concept_test(BluePrintConcept)
Implements a concept test for blueprints.
Definition: blueprints.hpp:59
ecl
Embedded control libraries.


ecl_concepts
Author(s): Daniel Stonier
autogenerated on Wed Mar 2 2022 00:16:24