Falcon
Loading...
Searching...
No Matches
DefineType< DATA, BASETYPE, pure, CAPS, PARAMS > Class Template Reference

Convenient template class to define data types. More...

#include <idata.hpp>

Public Types

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

Static Public Member Functions

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

Detailed Description

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

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.

The documentation for this class was generated from the following file: