Program Listing for File nullary_function.hpp
↰ Return to documentation for file (include/ecl/concepts/nullary_function.hpp
)
/*****************************************************************************
** Ifdefs
*****************************************************************************/
#ifndef ECL_CONCEPTS_NULLARY_FUNCTION_HPP_
#define ECL_CONCEPTS_NULLARY_FUNCTION_HPP_
/*****************************************************************************
** Includes
*****************************************************************************/
#include <ecl/config/macros.hpp>
#include "macros.hpp"
/*****************************************************************************
** Namespaces
*****************************************************************************/
namespace ecl {
/*****************************************************************************
** Concept [Container]
*****************************************************************************/
template <typename Implementation>
class NullaryFunctionConcept {
public:
ecl_compile_time_concept_test(NullaryFunctionConcept)
{
typedef typename Implementation::result_type ECL_UNUSED return_type;
function();
// Unfortunately we can't test for the result type to match a certain value here
// as this would then have 2 template arguments with a separating comma. That throws
// the compile_time_concept_check macro into thinking it has two macro arguments.
}
private:
// Putting instantiations here actually saves instantiation (which can cause a
// problem if there is no default constructor).
Implementation function;
};
} // namespace ecl
#endif /* ECL_CONCEPTS_NULLARY_FUNCTION_HPP_ */