maxon::details Namespace Reference

Classes

struct  BaseLock
 
struct  BlockType
 
struct  BlockType< const void >
 
struct  BlockType< void >
 
class  CallMe
 
class  CallMe< Result< T > >
 
class  CallMe< Result< void > >
 
class  CallMe< void >
 
struct  ClassGetNonConst
 
struct  ClassGetNonConst< ObjectRef >
 
struct  ComponentIdentifierMetaData
 
struct  ComponentIdentifierMetaData< const Char *, DEF >
 
struct  ComponentIdentifierMetaData< Id, DEF >
 
struct  ComponentIdentifierMetaData< LiteralId, DEF >
 
struct  CopyImplSelector
 
struct  CopyImplSelector< false >
 
struct  CopyImplSelector< true >
 
class  DataIdSwitch
 
class  DirectInstance
 
struct  DirectInstanceHandler
 
struct  EqualityCompare
 
class  FinallyFactory
 
class  FinallyOnce
 
class  FinallyOnceFactory
 
class  FinallyWrapper
 
class  ForceEvaluation
 
class  ForwardFree
 
class  ForwardFree< true >
 
struct  GetResultType
 
struct  GetResultType< Data >
 
struct  GetResultType< Result< Data > >
 
struct  GetResultType< Result< T > >
 
struct  GetResultType< Result< void > >
 
struct  GetResultType< void >
 
class  GlobalBase
 
class  HasBaseHelper
 
class  HasBaseHelper< D, B, 1 >
 
class  HasBaseHelper< D, B, 2 >
 
struct  HasCommonType
 
struct  HasCommonType< T1, T2, typename SFINAEHelper< void, typename std::common_type< T1, T2 >::type >::type >
 
struct  HomogenousTupleTypeHelper
 
struct  HomogenousTupleTypeHelper< 0, T, TYPES ... >
 
class  IdSwitch
 
class  IdSwitchCheck
 
class  InitializationFunctions
 
class  InternedIdSwitch
 
struct  IterableBeginHelper
 
struct  IterableBeginHelper< T(&)[N]>
 
struct  IterableBeginHelper< T[N]>
 
struct  LessThanCompare
 
struct  LessThanOrEqualAsLessThan
 
struct  MakeLValueConst
 
struct  MakeLValueConst< T & >
 
struct  MemberType
 
struct  MemberType< T & >
 
struct  MemberType< T && >
 
struct  MemberTypeBase
 
struct  MemberTypeBase< T, typename std::enable_if< STD_IS_REPLACEMENT(base_of, InternedId, T), typename SFINAEHelper< void, typename T::ValueType >::type >::type >
 
struct  MethodDelegateThisType
 
struct  MethodDelegateType
 
struct  MethodDelegateType< RESULT(*)(OBJECT *, ARGS...)>
 
class  NewDelete
 
struct  NonEmptyBasesHelper
 
struct  NonEmptyBasesHelper< T1, REST... >
 
struct  NonEmptyBasesHelper<>
 
class  NonEmptyDerived
 
class  NonEmptyDerived< B1, EmptyClass >
 
class  NonEmptyDerived< EmptyClass, B2 >
 
class  NonEmptyDerived< EmptyClass, EmptyClass >
 
class  NullReturnType
 
struct  ObjectBaseRefImpl
 
struct  ObjectBaseRefImpl< EntityBase::FLAGS::REFERENCE_CONST >
 
struct  ObjectBaseRefImpl< EntityBase::FLAGS::REFERENCE_COPY_ON_WRITE >
 
struct  ObjectBaseRefImpl< EntityBase::FLAGS::REFERENCE_NORMAL >
 
class  OptDefaultStorage
 
class  OptRefStorage
 
class  OptScalarStorage
 
class  PackConstData
 
struct  PairSelector
 
struct  PairSelector< T1, T2, UnitType >
 
struct  ParameterPackContainsAll
 
struct  ParameterPackContainsAll< PACK, ParameterPack< X... > >
 
struct  PartialSumSequenceHelper
 
struct  PartialSumSequenceHelper< ZERO_BASED, SEQUENCE, SUM >
 
struct  PartialSumSequenceHelper< ZERO_BASED, SEQUENCE, SUM, X, REST... >
 
class  PrivateVertexWrapper
 
struct  ResultOkError
 
class  ResultOptFunctions
 
struct  ReverseIterable
 
struct  StaticSplitHelper
 
struct  StaticSplitHelper< 0, I >
 
struct  SubstituteReferenceByPointer
 
struct  SubstituteReferenceByPointer< T & >
 
struct  SubstituteReferenceByPointer< T && >
 
struct  TmpErrType
 
struct  TmpErrType< ResultOk< T > >
 
struct  TupleRecHelper
 
struct  TupleRecHelper< I, 0 >
 
struct  TupleRecHelper< I, 1 >
 
struct  TupleRefWrapper
 
struct  TupleRefWrapper< T & >
 
class  TupleStorage
 
class  TupleStorage< T1 >
 
class  TupleStorage< T1, T2 >
 
class  TupleStorage< T1, T2, T3 >
 
class  TupleStorage< T1, T2, T3, T4 >
 
class  TupleStorage< T1, T2, T3, T4, T5 >
 
class  TupleStorage< T1, UnitType >
 
class  TupleStorageBase
 
class  TupleStorageBase< false, true, T... >
 
class  TupleStorageBase< true, false, T... >
 
class  TupleStorageBase< true, true, T... >
 
class  TupleStorageLayout
 
class  TupleStorageLayout< INDEX, PRE_OFFSET, PRE_MAX_ALIGN >
 
class  TupleStorageLayout< INDEX, PRE_OFFSET, PRE_MAX_ALIGN, SZ_ALIGN, REST... >
 
class  UnpackConstData
 
class  UnpackConstData< RESULT(ARGS...)>
 

Typedefs

template<typename T >
using GetReferenceClass = typename T::ReferenceClass
 
template<typename T >
using GetPrivateReferencedType = typename T::PrivateReferencedType
 
template<typename T >
using OptStorageType = typename std::conditional< STD_IS_REPLACEMENT(scalar, T), maxon::details::OptScalarStorage< T >, maxon::details::OptDefaultStorage< T > >::type
 

Functions

template<typename T >
StrongReferenceCounterPrivateGetReferenceCounter (const T *obj)
 
template<typename T >
void PrivateFreeWithDestructor (const T *obj)
 
void PrivateAddWeakReference (WeakRefBase &weakRef, const void *target)
 
template<typename T , typename... ARGS>
ResultPtr< T > NewObjWithLocation (MAXON_SOURCE_LOCATION_DECLARATION, ARGS &&... args)
 
template<typename I , typename = typename I::NonvirtualInterfaceMarker>
const void * MethodDelegateMTable (const void *)
 
template<typename I , typename = typename I::InterfaceMarker>
const void * MethodDelegateMTable (const ObjectInterface *object)
 
template<typename I , typename METHOD , typename T >
MethodDelegateType< METHOD >::type GetMethodDelegate (T &&object, Int offset)
 
IdSwitchCheck< InternedIdSwitchGetIdSwitch (const InternedId &iid, OverloadRank2)
 
IdSwitchCheck< InternedIdSwitchGetIdSwitch (const InternedId *iid, OverloadRank2)
 
IdSwitchCheck< IdSwitchGetIdSwitch (const Id &id, OverloadRank1)
 
IdSwitchCheck< DataIdSwitchGetIdSwitch (const ConstDataPtr &data, OverloadRank0)
 
IdSwitchCheck< DataIdSwitchGetIdSwitch (const ForwardingDataPtr &data, OverloadRank0)
 
template<typename COLLECTION , typename... ARGS>
void EraseHelper (COLLECTION &collection, typename COLLECTION::Iterator &it, std::false_type *, ARGS &&... args)
 
template<typename COLLECTION , typename... ARGS>
void EraseHelper (COLLECTION &collection, typename COLLECTION::Iterator &it, std::true_type *, ARGS &&... args)
 
template<typename MTABLE , typename WRAPPER >
void InitMTable (MTABLE *tbl)
 
void AndNotAssignWithShift (UInt64 &value, UInt bits, UInt shift)
 
UInt GetUInt (UInt64 value, UInt position)
 
UInt GetMultiIndexElementLength (UInt code)
 
Result< void > AddComponentToClass (ClassInterface &cls, const ComponentDescriptor &comp)
 
template<typename C >
Result< void > AddComponentToClass (ClassInterface &cls, const Declaration< ComponentDescriptor, C > &comp)
 
Result< void > AddComponentToClass (ClassInterface &cls, const Class<> &comp)
 
template<typename T , typename C >
Result< void > AddComponentToClass (ClassInterface &cls, const Declaration< Class< T >, C > &comp)
 
template<typename... ARGS>
static auto GetUnpackConstData (const Delegate< ARGS... > &) -> UnpackConstData< ARGS... >
 
template<typename T >
Int InstantiateNullReturnValue (OverloadRank0)
 
template<typename T >
SFINAEHelper< Int, typename std::enable_if<!STD_IS_REPLACEMENT(scalar, typename std::remove_reference< T >::type)>::type, typename NullValueFunctions< typename std::decay< T >::type >::Default >::type InstantiateNullReturnValue (OverloadRank1)
 
template<typename T >
constexpr UInt64 GetSizeAndAlignment ()
 
template<typename X >
Bool TupleDestructMember (Generic &x, SFINAEHelper< X > *)
 
template<typename X >
Bool TupleDestructMember (Generic &x, SFINAEHelper< X & > *)
 
template<typename TUPLE , size_t... I>
void TupleDestruct (TUPLE &tuple, std::index_sequence< I... > *)
 
ResultOk< void > TupleCopyFrom ()
 
template<typename T1 , typename... T>
Result< void > TupleCopyFrom (const T1 &a1, const T &... rest)
 
template<typename HASH >
UInt TupleGetHashCode ()
 
template<typename HASH , typename T1 , typename... T>
UInt TupleGetHashCode (const T1 &a1, const T &... rest)
 
const StringTupleToString (const FormatStatement *fs)
 
template<typename T1 , typename... T>
SFINAEHelper< String, T1 >::type TupleToString (const FormatStatement *fs, const T1 &a1, const T &... rest)
 
Bool TupleEquals ()
 
template<typename T1 , typename... T>
Bool TupleEquals (const T1 &a1, const T &... rest)
 
Bool TupleLessThan ()
 
template<typename T1 , typename... T>
Bool TupleLessThan (const T1 &a1, const T &... rest)
 
template<typename T1 , typename T2 >
TupleStorage< T1 &, const T2 & > TuplePair (T1 &t1, const T2 &t2)
 
template<typename TUP , typename F , size_t ... INDICES>
auto ExpandSeqHelperConst (const TUP &tup, F &&func, std::index_sequence< INDICES ... >) -> decltype(func(TupleGet< INDICES >(tup) ...))
 
template<typename TUP , typename F , size_t ... INDICES>
auto ExpandSeqHelper (TUP &&tup, F &&func, std::index_sequence< INDICES ... >) -> decltype(func(TupleGet< INDICES >(std::forward< TUP >(tup)) ...))
 
Bool PrivateClearAllWeakReferences (const void *obj)
 

Variables

struct maxon::details::MethodDelegateType< RESULT(*)(OBJECT *, ARGS...)> MAXON_ENUM_ORDERED_LIST_CLASS
 
const COMPARERESULT g_compareResultIncomparable
 

Typedef Documentation

◆ GetReferenceClass

using GetReferenceClass = typename T::ReferenceClass

◆ GetPrivateReferencedType

using GetPrivateReferencedType = typename T::PrivateReferencedType

◆ OptStorageType

using OptStorageType = typename std::conditional< STD_IS_REPLACEMENT(scalar, T), maxon::details::OptScalarStorage<T>, maxon::details::OptDefaultStorage<T> >::type

Function Documentation

◆ PrivateGetReferenceCounter()

StrongReferenceCounter & PrivateGetReferenceCounter ( const T *  obj)

◆ PrivateFreeWithDestructor()

void PrivateFreeWithDestructor ( const T *  obj)

◆ PrivateAddWeakReference()

void maxon::details::PrivateAddWeakReference ( WeakRefBase weakRef,
const void *  target 
)

◆ NewObjWithLocation()

ResultPtr< T > NewObjWithLocation ( MAXON_SOURCE_LOCATION_DECLARATION  ,
ARGS &&...  args 
)

◆ MethodDelegateMTable() [1/2]

const void* maxon::details::MethodDelegateMTable ( const void *  )

◆ MethodDelegateMTable() [2/2]

const void* maxon::details::MethodDelegateMTable ( const ObjectInterface object)

◆ GetMethodDelegate()

MethodDelegateType<METHOD>::type maxon::details::GetMethodDelegate ( T &&  object,
Int  offset 
)

◆ GetIdSwitch() [1/5]

IdSwitchCheck<InternedIdSwitch> maxon::details::GetIdSwitch ( const InternedId iid,
OverloadRank2   
)

◆ GetIdSwitch() [2/5]

IdSwitchCheck<InternedIdSwitch> maxon::details::GetIdSwitch ( const InternedId iid,
OverloadRank2   
)

◆ GetIdSwitch() [3/5]

IdSwitchCheck<IdSwitch> maxon::details::GetIdSwitch ( const Id id,
OverloadRank1   
)

◆ GetIdSwitch() [4/5]

IdSwitchCheck<DataIdSwitch> maxon::details::GetIdSwitch ( const ConstDataPtr data,
OverloadRank0   
)

◆ GetIdSwitch() [5/5]

IdSwitchCheck<DataIdSwitch> maxon::details::GetIdSwitch ( const ForwardingDataPtr data,
OverloadRank0   
)

◆ EraseHelper() [1/2]

void maxon::details::EraseHelper ( COLLECTION &  collection,
typename COLLECTION::Iterator &  it,
std::false_type *  ,
ARGS &&...  args 
)

◆ EraseHelper() [2/2]

void maxon::details::EraseHelper ( COLLECTION &  collection,
typename COLLECTION::Iterator &  it,
std::true_type *  ,
ARGS &&...  args 
)

◆ InitMTable()

void maxon::details::InitMTable ( MTABLE *  tbl)

◆ AndNotAssignWithShift()

void maxon::details::AndNotAssignWithShift ( UInt64 value,
UInt  bits,
UInt  shift 
)

◆ GetUInt()

UInt maxon::details::GetUInt ( UInt64  value,
UInt  position 
)

◆ GetMultiIndexElementLength()

UInt maxon::details::GetMultiIndexElementLength ( UInt  code)

◆ AddComponentToClass() [1/4]

Result<void> maxon::details::AddComponentToClass ( ClassInterface cls,
const ComponentDescriptor comp 
)

◆ AddComponentToClass() [2/4]

Result<void> maxon::details::AddComponentToClass ( ClassInterface cls,
const Declaration< ComponentDescriptor, C > &  comp 
)

◆ AddComponentToClass() [3/4]

Result<void> maxon::details::AddComponentToClass ( ClassInterface cls,
const Class<> &  comp 
)

◆ AddComponentToClass() [4/4]

Result<void> maxon::details::AddComponentToClass ( ClassInterface cls,
const Declaration< Class< T >, C > &  comp 
)

◆ GetUnpackConstData()

static auto maxon::details::GetUnpackConstData ( const Delegate< ARGS... > &  ) -> UnpackConstData<ARGS...>
static

◆ InstantiateNullReturnValue() [1/2]

Int maxon::details::InstantiateNullReturnValue ( OverloadRank0  )

◆ InstantiateNullReturnValue() [2/2]

SFINAEHelper<Int, typename std::enable_if<!STD_IS_REPLACEMENT(scalar, typename std::remove_reference<T>::type)>::type, typename NullValueFunctions<typename std::decay<T>::type>::Default>::type maxon::details::InstantiateNullReturnValue ( OverloadRank1  )

◆ GetSizeAndAlignment()

constexpr UInt64 maxon::details::GetSizeAndAlignment ( )
constexpr

◆ TupleDestructMember() [1/2]

Bool maxon::details::TupleDestructMember ( Generic &  x,
SFINAEHelper< X > *   
)

◆ TupleDestructMember() [2/2]

Bool maxon::details::TupleDestructMember ( Generic &  x,
SFINAEHelper< X & > *   
)

◆ TupleDestruct()

void maxon::details::TupleDestruct ( TUPLE &  tuple,
std::index_sequence< I... > *   
)

◆ TupleCopyFrom() [1/2]

ResultOk<void> maxon::details::TupleCopyFrom ( )

◆ TupleCopyFrom() [2/2]

Result<void> maxon::details::TupleCopyFrom ( const T1 &  a1,
const T &...  rest 
)

◆ TupleGetHashCode() [1/2]

UInt maxon::details::TupleGetHashCode ( )

◆ TupleGetHashCode() [2/2]

UInt maxon::details::TupleGetHashCode ( const T1 &  a1,
const T &...  rest 
)

◆ TupleToString() [1/2]

const String& maxon::details::TupleToString ( const FormatStatement fs)

◆ TupleToString() [2/2]

SFINAEHelper<String, T1>::type maxon::details::TupleToString ( const FormatStatement fs,
const T1 &  a1,
const T &...  rest 
)

◆ TupleEquals() [1/2]

Bool maxon::details::TupleEquals ( )

◆ TupleEquals() [2/2]

Bool maxon::details::TupleEquals ( const T1 &  a1,
const T &...  rest 
)

◆ TupleLessThan() [1/2]

Bool maxon::details::TupleLessThan ( )

◆ TupleLessThan() [2/2]

Bool maxon::details::TupleLessThan ( const T1 &  a1,
const T &...  rest 
)

◆ TuplePair()

TupleStorage<T1&, const T2&> maxon::details::TuplePair ( T1 &  t1,
const T2 &  t2 
)

◆ ExpandSeqHelperConst()

auto maxon::details::ExpandSeqHelperConst ( const TUP &  tup,
F &&  func,
std::index_sequence< INDICES ... >   
) -> decltype(func(TupleGet<INDICES>(tup) ...))

◆ ExpandSeqHelper()

auto maxon::details::ExpandSeqHelper ( TUP &&  tup,
F &&  func,
std::index_sequence< INDICES ... >   
) -> decltype(func(TupleGet<INDICES>(std::forward<TUP>(tup)) ...))

◆ PrivateClearAllWeakReferences()

Bool maxon::details::PrivateClearAllWeakReferences ( const void *  obj)

Variable Documentation

◆ MAXON_ENUM_ORDERED_LIST_CLASS

struct maxon::details::MethodDelegateType< RESULT(*)(OBJECT *, ARGS...)> MAXON_ENUM_ORDERED_LIST_CLASS

◆ g_compareResultIncomparable

const COMPARERESULT g_compareResultIncomparable