NamedTuple< T > Class Template Reference

#include <datatype.h>

Inheritance diagram for NamedTuple< T >:

Classes

struct  Helper
 
struct  HelperStorage
 

Public Types

using TupleType = Tuple< typename maxon::details::MemberType< T >::type... >
 
using TupleTypeWithPtrsForRefs = Tuple< typename maxon::details::SubstituteReferenceByPointer< typename maxon::details::MemberType< T >::type >::type... >
 
using Pack = ParameterPack< T... >
 
using ContainerType = ContainerDataType< T... >
 
template<typename OTHER >
using ContainsAll = typename Pack::template ContainsAll< typename OTHER::Pack >
 
- Public Types inherited from ParameterPack< T... >
using FirstType = void
 
using RestPack = ParameterPack<>
 
using ContainsAll = maxon::details::ParameterPackContainsAll< ParameterPack, X... >
 
using Apply = TEMPLATE< X..., T... >
 

Static Public Member Functions

static const Block< const Member > & GetMembers ()
 
static const TupleDataTypeGetDataType ()
 
static const ContainerTypeGetContainerType ()
 
static Int FindIndex (const InternedId &name)
 
static Int FindOffset (const InternedId &name)
 
static Tuple< Int, const DataType * > FindOffsetAndType (const InternedId &name)
 

Static Public Attributes

static const Bool ALL_NAMED
 
- Static Public Attributes inherited from ParameterPack< T... >
static const Int COUNT
 

Static Private Member Functions

template<UInt32 I>
static std::enable_if<(I< sizeof...(T)), Int >::type FindIndexImpl (const Id *name)
 
template<UInt32 I>
static Int FindIndexImpl (...)
 
template<UInt32 I>
static std::enable_if<(I< sizeof...(T)), Int >::type FindOffsetImpl (const Id *name)
 
template<UInt32 I>
static Int FindOffsetImpl (...)
 
template<UInt32 I>
static std::enable_if<(I< sizeof...(T)), Tuple< Int, const DataType * > >::type FindOffsetAndTypeImpl (const Id *name)
 
template<UInt32 I>
static Tuple< Int, const DataType * > FindOffsetAndTypeImpl (...)
 

Static Private Attributes

static HelperStorage _helper
 

Member Typedef Documentation

◆ TupleType

using TupleType = Tuple<typename maxon::details::MemberType<T>::type...>

◆ TupleTypeWithPtrsForRefs

◆ Pack

using Pack = ParameterPack<T...>

◆ ContainerType

◆ ContainsAll

using ContainsAll = typename Pack::template ContainsAll<typename OTHER::Pack>

Member Function Documentation

◆ GetMembers()

static const Block<const Member>& GetMembers ( )
static

◆ GetDataType()

static const TupleDataType& GetDataType ( )
static

◆ GetContainerType()

static const ContainerType& GetContainerType ( )
static

◆ FindIndex()

static Int FindIndex ( const InternedId name)
static

◆ FindOffset()

static Int FindOffset ( const InternedId name)
static

◆ FindOffsetAndType()

static Tuple<Int, const DataType*> FindOffsetAndType ( const InternedId name)
static

◆ FindIndexImpl() [1/2]

static std::enable_if<(I < sizeof...(T)), Int>::type FindIndexImpl ( const Id name)
staticprivate

◆ FindIndexImpl() [2/2]

static Int FindIndexImpl (   ...)
staticprivate

◆ FindOffsetImpl() [1/2]

static std::enable_if<(I < sizeof...(T)), Int>::type FindOffsetImpl ( const Id name)
staticprivate

◆ FindOffsetImpl() [2/2]

static Int FindOffsetImpl (   ...)
staticprivate

◆ FindOffsetAndTypeImpl() [1/2]

static std::enable_if<(I < sizeof...(T)), Tuple<Int, const DataType*> >::type FindOffsetAndTypeImpl ( const Id name)
staticprivate

◆ FindOffsetAndTypeImpl() [2/2]

static Tuple<Int, const DataType*> FindOffsetAndTypeImpl (   ...)
staticprivate

Member Data Documentation

◆ ALL_NAMED

const Bool ALL_NAMED
static