12 #ifndef ECL_UTILITIES_BLUEPRINT_FACTORY_HPP_ 13 #define ECL_UTILITIES_BLUEPRINT_FACTORY_HPP_ 46 template <
typename Derived>
71 template <
typename BaseType>
73 return static_cast<Derived*
>(
this)->instantiate();
90 template <
typename BaseType>
92 static_cast<const Derived*
>(
this)->apply(
object);
104 template <
typename Base>
Embedded control libraries.
void implementApply(BaseType &object) const
Apply the blueprint rules to an existing object.
virtual ~BluePrintFactory()
BaseType implementInstantiate()
Use the blueprint to instantiate a new object.
BluePrint()
Blueprint concept checking.
Primary template for blueprint factories.
BluePrintFactory()
Default constructor that locks this class from being used directly.
#define ecl_compile_time_concept_check(Model)
This is a parent template for blueprints using crtp.