Program Listing for File blueprints.hpp

Return to documentation for file (/tmp/ws/src/ecl_core/ecl_concepts/include/ecl/concepts/blueprints.hpp)

/*****************************************************************************
** Ifdefs
*****************************************************************************/

#ifndef ECL_CONCEPTS_BLUEPRINTS_HPP_
#define ECL_CONCEPTS_BLUEPRINTS_HPP_

/*****************************************************************************
** Includes
*****************************************************************************/

#include "macros.hpp"

/*****************************************************************************
** Namespaces
*****************************************************************************/

namespace ecl {

/*****************************************************************************
** Concept [BluePrint]
*****************************************************************************/

template <typename Implementation>
class BluePrintConcept {
public:
    ecl_compile_time_concept_test(BluePrintConcept)
    {
        target = blue_print.instantiate();
        blue_print.apply(target);
    }

private:
    typename Implementation::base_type target;
    Implementation blue_print;
};

} // namespace ecl

#endif /* ECL_CONCEPTS_BLUEPRINTS_HPP_ */