AttributeTuple< OPT, ARGS > Class Template Reference

#include <attributetuple.h>

Inheritance diagram for AttributeTuple< OPT, ARGS >:

Public Types

using Super = AttributeTupleBase< OPT, sizeof...(ARGS)>
 
using TYPE = NamedTuple< typename std::remove_const< ARGS >::type... >
 

Public Member Functions

 AttributeTuple ()=default
 
template<typename... INITTUPLE>
MAXON_ATTRIBUTE_FORCE_INLINE AttributeTuple (INITTUPLE &&... args)
 
template<typename ARG >
MAXON_ATTRIBUTE_FORCE_INLINE ARG::FidType & operator[] (const ARG &)
 
template<typename ARG >
MAXON_ATTRIBUTE_FORCE_INLINE const ARG::FidType & operator[] (const ARG &) const
 
MAXON_ATTRIBUTE_FORCE_INLINE ConstDataPtr operator[] (const InternedId &id) const
 
MAXON_ATTRIBUTE_FORCE_INLINE ConstDataPtr operator[] (const ConstDataPtr &key) const
 
MAXON_ATTRIBUTE_FORCE_INLINE DataPtr operator[] (const ConstDataPtr &key)
 
MAXON_ATTRIBUTE_FORCE_INLINE ConstDataPtr operator[] (ForwardingDataPtr &&key) const
 
MAXON_ATTRIBUTE_FORCE_INLINE DataPtr operator[] (ForwardingDataPtr &&key)
 
template<typename ARG >
MAXON_ATTRIBUTE_FORCE_INLINE Opt< const typename ARG::FidType & > GetOpt (const ARG &) const
 
template<typename ARG >
MAXON_ATTRIBUTE_FORCE_INLINE Result< const typename ARG::FidType & > Get (const ARG &) const
 
template<typename ARG >
MAXON_ATTRIBUTE_FORCE_INLINE const ARG::FidType & Get (const ARG &, const typename ARG::FidType &defaultValue) const
 
template<typename ARG >
MAXON_ATTRIBUTE_FORCE_INLINE Result< void > Set (const ARG &, const typename ARG::FidType &value)
 
template<typename ARG >
MAXON_ATTRIBUTE_FORCE_INLINE void Set (const ARG &, typename ARG::FidType &&value)
 

Private Member Functions

template<typename ID , typename VALUE , typename... MOREARGS>
void InitImpl (const ID &id, VALUE &&value, MOREARGS &&... moreArgs)
 
constexpr void InitImpl ()
 

Private Attributes

TYPE::TupleType _tuple
 

Additional Inherited Members

- Protected Member Functions inherited from AttributeTupleBase< OPT, sizeof...(ARGS)>
constexpr MAXON_ATTRIBUTE_FORCE_INLINE void SetUsed (Int idx, Bool used)
 
constexpr MAXON_ATTRIBUTE_FORCE_INLINE Bool IsUsed (Int idx) const
 
- Protected Attributes inherited from AttributeTupleBase< OPT, sizeof...(ARGS)>
Bool _used [CNT]
 

Member Typedef Documentation

◆ Super

using Super = AttributeTupleBase<OPT, sizeof...(ARGS)>

◆ TYPE

using TYPE = NamedTuple<typename std::remove_const<ARGS>::type...>

Constructor & Destructor Documentation

◆ AttributeTuple() [1/2]

AttributeTuple ( )
default

◆ AttributeTuple() [2/2]

MAXON_ATTRIBUTE_FORCE_INLINE AttributeTuple ( INITTUPLE &&...  args)
explicit

Member Function Documentation

◆ operator[]() [1/7]

MAXON_ATTRIBUTE_FORCE_INLINE ARG::FidType& operator[] ( const ARG &  )

◆ operator[]() [2/7]

MAXON_ATTRIBUTE_FORCE_INLINE const ARG::FidType& operator[] ( const ARG &  ) const

◆ operator[]() [3/7]

MAXON_ATTRIBUTE_FORCE_INLINE ConstDataPtr operator[] ( const InternedId id) const

◆ operator[]() [4/7]

MAXON_ATTRIBUTE_FORCE_INLINE ConstDataPtr operator[] ( const ConstDataPtr key) const

◆ operator[]() [5/7]

MAXON_ATTRIBUTE_FORCE_INLINE DataPtr operator[] ( const ConstDataPtr key)

◆ operator[]() [6/7]

◆ operator[]() [7/7]

◆ GetOpt()

MAXON_ATTRIBUTE_FORCE_INLINE Opt<const typename ARG::FidType&> GetOpt ( const ARG &  ) const

◆ Get() [1/2]

MAXON_ATTRIBUTE_FORCE_INLINE Result<const typename ARG::FidType&> Get ( const ARG &  ) const

◆ Get() [2/2]

MAXON_ATTRIBUTE_FORCE_INLINE const ARG::FidType& Get ( const ARG &  ,
const typename ARG::FidType &  defaultValue 
) const

◆ Set() [1/2]

MAXON_ATTRIBUTE_FORCE_INLINE Result<void> Set ( const ARG &  ,
const typename ARG::FidType &  value 
)

◆ Set() [2/2]

MAXON_ATTRIBUTE_FORCE_INLINE void Set ( const ARG &  ,
typename ARG::FidType &&  value 
)

◆ InitImpl() [1/2]

void InitImpl ( const ID &  id,
VALUE &&  value,
MOREARGS &&...  moreArgs 
)
private

◆ InitImpl() [2/2]

constexpr void InitImpl ( )
constexprprivate

Member Data Documentation

◆ _tuple

TYPE::TupleType _tuple
private