blueprints.hpp
Go to the documentation of this file.
00001 
00008 /*****************************************************************************
00009 ** Ifdefs
00010 *****************************************************************************/
00011 
00012 #ifndef ECL_CONCEPTS_BLUEPRINTS_HPP_
00013 #define ECL_CONCEPTS_BLUEPRINTS_HPP_
00014 
00015 /*****************************************************************************
00016 ** Includes
00017 *****************************************************************************/
00018 
00019 #include "macros.hpp"
00020 
00021 /*****************************************************************************
00022 ** Namespaces
00023 *****************************************************************************/
00024 
00025 namespace ecl {
00026 
00027 /*****************************************************************************
00028 ** Concept [BluePrint]
00029 *****************************************************************************/
00030 
00034 template <typename Implementation>
00035 class BluePrintConcept {
00036 public:
00045         ecl_compile_time_concept_test(BluePrintConcept)
00046         {
00047                 target = blue_print.instantiate();
00048                 blue_print.apply(target);
00049         }
00050 
00051 private:
00052         typename Implementation::base_type target;
00053         Implementation blue_print;
00054 };
00055 
00056 }; // namespace ecl
00057 
00058 #endif /* ECL_CONCEPTS_BLUEPRINTS_HPP_ */


ecl_concepts
Author(s): Daniel Stonier
autogenerated on Sun Oct 5 2014 23:35:23