Template Class DefineType

Class Documentation

template<typename DATA, typename BASETYPE, bool pure = false, typename CAPS = typename DATA::Capabilities, typename PARAMS = typename DATA::Parameters>
class DefineType

Convenient template class to define data types.

There are two required and three optional template arguments: DATA: the associated data object class. BASETYPE: the parent data type. pure: optional, boolean argument indicating if data object is pure (i.e., its members/parameters are independent from parent). CAPS: optional, the capabilities class associated with the data object class. Default is DATA::Capabilities. PARAMS: optional, the parameters class associated with the data object class. Default is DATA::Parameters.

Note

The class defines static datatype() and dataname() methods that call the corresponding static methods in the data object class it also defines a static ispure method that propagates up the hierarchy (i.e., a data type is pure only if itself all its (grand)parents are pure.

Public Types

using Data = DATA
using Parameters = PARAMS
using Capabilities = CAPS
using Base = BASETYPE

Public Static Functions

static inline const std::string datatype()
static inline const std::string dataname()
static inline const bool ispure()