baseref.h File Reference

Classes

class  BaseRef< T, HANDLER >
 
class  PointerHandler
 
class  DeepConstnessPointerHandler
 
class  StrongRefHandler
 
class  StrongCOWRefHandler
 
struct  StrongCOWRefHandler::MakeWritableHelper< T, typename >
 
class  StrongACOWRefHandler
 
class  UniqueRefHandler
 
struct  RawMem< T >
 
class  BaseRef< RawMem< T >, H >
 

Namespaces

 maxon
 
 maxon::details
 

Macros

#define NewObjCopy(T, SRC)
 

Typedefs

template<typename T >
using Pointer = BaseRef< T, PointerHandler >
 
template<typename T >
using UniqueRef = BaseRef< T, UniqueRefHandler >
 
template<typename T >
using StrongRef = BaseRef< T, StrongRefHandler >
 
template<typename T >
using StrongCOWRef = BaseRef< const T, StrongCOWRefHandler >
 
template<typename T >
using AutoMem = UniqueRef< RawMem< T > >
 

Functions

StrongReferenceCounter & PrivateGetReferenceCounter (const void *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 T >
T * PrivateInitCopy (void *ptr, const T &src)