interfacebase.h File Reference

Classes

class   PrivateDummyFree
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   GenericCastMemberTrait< TO, FROM, SAFE, typename SFINAEHelper< void, typename TO::DirectlyReferencedType, typename FROM::DirectlyReferencedType >::type >

Namespaces

  maxon
  maxon::details

Macros

#define  MAXON_CHECK_CLASS (Name)
#define  MAXON_METHOD
#define  MAXON_FUNCTION
#define  MAXON_METHOD_RESERVE
#define  MAXON_REFERENCE_NONE (DUMMY)
#define  PRIVATE_MAXON_REFERENCE_NONE_FLAGS
#define  PRIVATE_MAXON_REFERENCE_NONE_COPY (Name)
#define  MAXON_REFERENCE_STATIC (DUMMY)
#define  PRIVATE_MAXON_REFERENCE_STATIC_FLAGS
#define  PRIVATE_MAXON_REFERENCE_STATIC_COPY (Name)
#define  MAXON_REFERENCE_POINTER (DUMMY)
#define  PRIVATE_MAXON_REFERENCE_POINTER_FLAGS
#define  PRIVATE_MAXON_REFERENCE_POINTER_COPY (Name)
#define  MAXON_REFERENCE_CONST_POINTER (DUMMY)
#define  PRIVATE_MAXON_REFERENCE_CONST_POINTER_FLAGS
#define  PRIVATE_MAXON_REFERENCE_CONST_POINTER_COPY (Name)
#define  MAXON_REFERENCE_NORMAL (DUMMY)
#define  PRIVATE_MAXON_REFERENCE_NORMAL_FLAGS
#define  PRIVATE_MAXON_REFERENCE_NORMAL_COPY (Name)
#define  MAXON_REFERENCE_UNIQUE (DUMMY)
#define  PRIVATE_MAXON_REFERENCE_UNIQUE_FLAGS
#define  PRIVATE_MAXON_REFERENCE_UNIQUE_COPY (Name)
#define  MAXON_REFERENCE_CONST (DUMMY)
#define  PRIVATE_MAXON_REFERENCE_CONST_FLAGS
#define  PRIVATE_MAXON_REFERENCE_CONST_COPY (Name)
#define  MAXON_REFERENCE_COPY_ON_WRITE (DUMMY)
#define  PRIVATE_MAXON_REFERENCE_COPY_ON_WRITE_FLAGS
#define  PRIVATE_MAXON_REFERENCE_COPY_ON_WRITE_COPY (Name)
#define  MAXON_REFERENCE_ALWAYS_COPY_ON_WRITE (DUMMY)
#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 (C, cast)
#define  MAXON_IMPLEMENTATION (C)
#define  MAXON_IMPLEMENTATION_DERIVED (C, I)
#define  COW_KIND_SFINAE
#define  MAXON_IMPLEMENTATION_REGISTER (C, ...)
#define  MAXON_INTERFACE_SIMPLE_VIRTUAL (Name, REFKIND)
#define  PRIVATE_MAXON_INTERFACE_SIMPLE_VIRTUAL_VTABLE_ACCESS
#define  MAXON_INTERFACE_SIMPLE_VIRTUAL_CONST_VTABLE_POINTER
#define  MAXON_INTERFACE_SIMPLE_VIRTUAL_DERIVED (Name, REFKIND)
#define  MAXON_IMPLEMENTATION_SIMPLE (C, ...)
#define  MAXON_IMPLEMENTATION_REGISTER_SIMPLE (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 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)