interfacebase.h File Reference

Classes

class  PrivateDummyFree
 
struct  ClassInfoBase
 
struct  DirectInstanceHandler
 
class  DirectInstance< REFERENCED, ERASED >
 
struct  HasCommonType< T1, T2, typename >
 
struct  HasCommonType< T1, T2, typename SFINAEHelper< void, typename std::common_type< T1, T2 >::type >::type >
 
struct  AddResultHelper< T, HAS_ERROR >
 
struct  AddResultHelper< T, true >
 
struct  AddResultHelper< ResultOk< T >, true >
 
struct  AddResultHelper< Result< T >, true >
 
struct  AddResultHelper< ResultMemT< Bool >, true >
 
struct  AddResultHelper< ResultMemT< T * >, true >
 
struct  AddResultHelper< ResultRef< T >, true >
 
struct  GenericCastMemberTrait< TO, FROM, SAFE, typename SFINAEHelper< void, typename TO::DirectlyReferencedType, typename FROM::DirectlyReferencedType >::type >
 

Namespaces

 maxon
 
 maxon::details
 

Macros

#define MAXON_FORWARD(header)
 
#define MAXON_CHECK_CLASS(Name)
 
#define MAXON_METHOD
 
#define MAXON_FUNCTION
 
#define MAXON_METHOD_RESERVE
 
#define MAXON_USING(...)
 
#define MAXON_USING_CONST(...)
 
#define PRIVATE_MAXON_REMOVE_REFERENCE
 
#define MAXON_REFERENCE_NONE(FREEIMPL)
 
#define PRIVATE_MAXON_REFERENCE_NONE_FLAGS
 
#define PRIVATE_MAXON_REFERENCE_NONE_COPY(Name)
 
#define MAXON_REFERENCE_STATIC(FREEIMPL)
 
#define PRIVATE_MAXON_REFERENCE_STATIC_FLAGS
 
#define PRIVATE_MAXON_REFERENCE_STATIC_COPY(Name)
 
#define MAXON_REFERENCE_POINTER(FREEIMPL)
 
#define PRIVATE_MAXON_REFERENCE_POINTER_FLAGS
 
#define PRIVATE_MAXON_REFERENCE_POINTER_COPY(Name)
 
#define MAXON_REFERENCE_CONST_POINTER(FREEIMPL)
 
#define PRIVATE_MAXON_REFERENCE_CONST_POINTER_FLAGS
 
#define PRIVATE_MAXON_REFERENCE_CONST_POINTER_COPY(Name)
 
#define MAXON_REFERENCE_NORMAL(FREEIMPL)
 
#define PRIVATE_MAXON_REFERENCE_NORMAL_FLAGS
 
#define PRIVATE_MAXON_REFERENCE_NORMAL_COPY(Name)
 
#define MAXON_REFERENCE_CONST(FREEIMPL)
 
#define PRIVATE_MAXON_REFERENCE_CONST_FLAGS
 
#define PRIVATE_MAXON_REFERENCE_CONST_COPY(Name)
 
#define MAXON_REFERENCE_COPY_ON_WRITE(FREEIMPL)
 
#define PRIVATE_MAXON_REFERENCE_COPY_ON_WRITE_FLAGS
 
#define PRIVATE_MAXON_REFERENCE_COPY_ON_WRITE_COPY(Name)
 
#define MAXON_REFERENCE_ALWAYS_COPY_ON_WRITE(FREEIMPL)
 
#define PRIVATE_MAXON_REFERENCE_ALWAYS_COPY_ON_WRITE_FLAGS
 
#define PRIVATE_MAXON_REFERENCE_ALWAYS_COPY_ON_WRITE_COPY(Name)
 
#define MAXON_ADD_TO_REFERENCE_CLASS(...)
 
#define MAXON_ADD_TO_COPY_ON_WRITE_REFERENCE_CLASS(...)
 
#define MAXON_ADD_TO_CONST_REFERENCE_CLASS(...)
 
#define MAXON_ADD_TO_INTERFACE_TEMPLATE_CLASS(...)
 
#define MAXON_INTERFACE_NONVIRTUAL(Name, REFKIND, ID)
 
#define MAXON_INTERFACE_NONVIRTUAL_DERIVED(Name, REFKIND, ID)
 
#define _MAXON_IMPLEMENTATION_BASICS(C)
 
#define MAXON_IMPLEMENTATION_BASICS(C, I)
 
#define MAXON_IMPLEMENTATION_NO_ALLOC(C, cast)
 
#define _MAXON_IMPLEMENTATION(C, cast)
 
#define MAXON_IMPLEMENTATION(C)
 
#define MAXON_IMPLEMENTATION_DERIVED(C, I)
 
#define COW_KIND_SFINAE
 
#define MAXON_IMPLEMENTATION_REGISTER(C, ...)
 
#define MAXON_IMPLEMENTATION_REGISTER_TEMPLATE(C, ...)
 
#define MAXON_INTERFACE_SIMPLE_VIRTUAL(Name, REFKIND)
 
#define PRIVATE_MAXON_INTERFACE_SIMPLE_VIRTUAL_VTABLE_ACCESS
 
#define MAXON_INTERFACE_SIMPLE_VIRTUAL_DERIVED(Name, REFKIND)
 
#define MAXON_IMPLEMENTATION_SIMPLE(C)
 
#define MAXON_IMPLEMENTATION_SIMPLE_DERIVABLE(C, BASE)
 
#define MAXON_IMPLEMENTATION_SIMPLE_FINAL(C, BASE)
 
#define MAXON_IMPLEMENTATION_SIMPLE_REGISTER(C)
 
#define MAXON_GENERIC(...)
 
#define MAXON_GENERIC_BASE(...)
 
#define PRIVATE_MAXON_GENERIC_REMOVE_VARIANCE(...)
 
#define PRIVATE_PRIVATE_MAXON_GENERIC_REMOVE_VARIANCE
 
#define PRIVATE_MAXON_GENERIC_A(...)
 
#define PRIVATE_MAXON_GENERIC_B(...)
 
#define PRIVATE_MAXON_GENERIC_C(...)
 
#define PRIVATE_MAXON_GENERIC_D(SWITCH, ...)
 
#define PRIVATE_MAXON_GENERIC_SWITCH_A(...)
 
#define PRIVATE_MAXON_GENERIC_SWITCH_B(...)
 
#define PRIVATE_MAXON_GENERIC_SWITCH_C(X, ...)
 
#define PRIVATE_MAXON_GENERIC_SWITCH_D(N)
 
#define PRIVATE_MAXON_GENERIC_SWITCH_E(N)
 
#define PRIVATE_MAXON_GENERIC_SWITCH_F(N)
 
#define PRIVATE_MAXON_GENERIC_SWITCH_0(...)
 
#define PRIVATE_MAXON_GENERIC_SWITCH_1(...)
 
#define PRIVATE_MAXON_GENERIC_SWITCH_TYPENAME(...)
 
#define PRIVATE_MAXON_GENERIC_TYPENAME_TEST_typename
 
#define PRIVATE_MAXON_GENERIC_USING_typename
 

Typedefs

template<typename T >
using GetReferenceClass = typename T::ReferenceClass
 
template<typename T >
using GetPrivateReferencedType = typename T::PrivateReferencedType
 
template<typename T , Bool HAS_ERROR>
using AddResult = typename maxon::details::AddResultHelper< T, HAS_ERROR >::type
 

Functions

template<typename C >
NullValueDetector< C *, &C::NullValue >::type ImplementationCreateNullValue (OverloadRank3)
 
template<typename C >
std::enable_if< MAXON_IS_COW_KIND(C::PrivateInterface::Hxx1::ReferenceClass::Handler::KIND), C * >::type ImplementationCreateNullValue (OverloadRank2)
 
template<typename C >
SFINAEHelper< C *, typename C::PrivateInterface::Hxx1::ReferenceClass::Handler >::type ImplementationCreateNullValue (OverloadRank1)
 
template<typename C >
C * ImplementationCreateNullValue (OverloadRank0)
 
template<typename C >
NullValueDetector< C *, &C::NullValue >::type ImplementationDestroyNullValue (const C *, OverloadRank3)
 
template<typename C >
std::enable_if< MAXON_IS_COW_KIND(C::PrivateInterface::Hxx1::ReferenceClass::Handler::KIND), C * >::type ImplementationDestroyNullValue (const C *o, OverloadRank2)
 
template<typename C >
void ImplementationDestroyNullValue (const C *, OverloadRank0)
 
template<typename MTABLE , typename WRAPPER >
void InitMTable (MTABLE *tbl)