momo  3.9
momo::internal::ObjectManager< TObject, TMemManager > Class Template Reference

#include <ObjectManager.h>

Classes

class  Creator
 

Public Types

typedef TObject Object
 
typedef TMemManager MemManager
 
typedef ObjectDestroyer< Object, MemManagerDestroyer
 
typedef ObjectRelocator< Object, MemManagerRelocator
 

Static Public Member Functions

static void Move (MemManager &memManager, Object &&srcObject, Object *dstObject) noexcept(isNothrowMoveConstructible)
 
static void Copy (MemManager &memManager, const Object &srcObject, Object *dstObject)
 
template<typename Executor >
static void MoveExec (MemManager &memManager, Object &&srcObject, Object *dstObject, Executor &&exec)
 
template<typename Executor >
static void CopyExec (MemManager &memManager, const Object &srcObject, Object *dstObject, Executor &&exec)
 
static void Destroy (MemManager &memManager, Object &object) noexcept
 
template<typename Iterator >
static void Destroy (MemManager &memManager, Iterator begin, size_t count) noexcept
 
static void Relocate (MemManager &memManager, Object &srcObject, Object *dstObject) noexcept(isNothrowRelocatable)
 
static void AssignAnyway (MemManager &memManager, Object &srcObject, Object &dstObject) noexcept(isNothrowAnywayAssignable)
 
static void Replace (MemManager &memManager, Object &srcObject, Object &dstObject) noexcept(isNothrowAnywayAssignable)
 
static void ReplaceRelocate (MemManager &memManager, Object &srcObject, Object &midObject, Object *dstObject) noexcept(isNothrowRelocatable)
 
template<typename Iterator >
static void Relocate (MemManager &memManager, Iterator srcBegin, Iterator dstBegin, size_t count) noexcept(isNothrowRelocatable)
 
template<typename Iterator , typename ObjectCreator >
static void RelocateCreate (MemManager &memManager, Iterator srcBegin, Iterator dstBegin, size_t count, ObjectCreator &&objectCreator, Object *newObject)
 
template<typename Iterator , typename Executor >
static void RelocateExec (MemManager &memManager, Iterator srcBegin, Iterator dstBegin, size_t count, Executor &&exec)
 
template<typename Iterator >
static void ShiftNothrow (MemManager &memManager, Iterator begin, size_t shift) noexcept
 

Static Public Attributes

static const bool isTriviallyRelocatable = Relocator::isTriviallyRelocatable
 
static const bool isNothrowRelocatable = Relocator::isNothrowRelocatable
 
static const bool isNothrowMoveConstructible
 
static const bool isNothrowSwappable = IsNothrowSwappable<Object>::GetValue()
 
static const bool isNothrowAnywayAssignable
 
static const bool isNothrowShiftable = isNothrowRelocatable || isNothrowSwappable
 
static const size_t alignment = ObjectAlignmenter<Object>::alignment
 

Member Typedef Documentation

◆ Destroyer

template<typename TObject , typename TMemManager >
typedef ObjectDestroyer<Object, MemManager> momo::internal::ObjectManager< TObject, TMemManager >::Destroyer

◆ MemManager

template<typename TObject , typename TMemManager >
typedef TMemManager momo::internal::ObjectManager< TObject, TMemManager >::MemManager

◆ Object

template<typename TObject , typename TMemManager >
typedef TObject momo::internal::ObjectManager< TObject, TMemManager >::Object

◆ Relocator

template<typename TObject , typename TMemManager >
typedef ObjectRelocator<Object, MemManager> momo::internal::ObjectManager< TObject, TMemManager >::Relocator

Member Function Documentation

◆ AssignAnyway()

template<typename TObject , typename TMemManager >
static void momo::internal::ObjectManager< TObject, TMemManager >::AssignAnyway ( MemManager memManager,
Object srcObject,
Object dstObject 
)
inlinestaticnoexcept

◆ Copy()

template<typename TObject , typename TMemManager >
static void momo::internal::ObjectManager< TObject, TMemManager >::Copy ( MemManager memManager,
const Object srcObject,
Object dstObject 
)
inlinestatic

◆ CopyExec()

template<typename TObject , typename TMemManager >
template<typename Executor >
static void momo::internal::ObjectManager< TObject, TMemManager >::CopyExec ( MemManager memManager,
const Object srcObject,
Object dstObject,
Executor &&  exec 
)
inlinestatic

◆ Destroy() [1/2]

template<typename TObject , typename TMemManager >
template<typename Iterator >
static void momo::internal::ObjectManager< TObject, TMemManager >::Destroy ( MemManager memManager,
Iterator  begin,
size_t  count 
)
inlinestaticnoexcept

◆ Destroy() [2/2]

template<typename TObject , typename TMemManager >
static void momo::internal::ObjectManager< TObject, TMemManager >::Destroy ( MemManager memManager,
Object object 
)
inlinestaticnoexcept

◆ Move()

template<typename TObject , typename TMemManager >
static void momo::internal::ObjectManager< TObject, TMemManager >::Move ( MemManager memManager,
Object &&  srcObject,
Object dstObject 
)
inlinestaticnoexcept

◆ MoveExec()

template<typename TObject , typename TMemManager >
template<typename Executor >
static void momo::internal::ObjectManager< TObject, TMemManager >::MoveExec ( MemManager memManager,
Object &&  srcObject,
Object dstObject,
Executor &&  exec 
)
inlinestatic

◆ Relocate() [1/2]

template<typename TObject , typename TMemManager >
template<typename Iterator >
static void momo::internal::ObjectManager< TObject, TMemManager >::Relocate ( MemManager memManager,
Iterator  srcBegin,
Iterator  dstBegin,
size_t  count 
)
inlinestaticnoexcept

◆ Relocate() [2/2]

template<typename TObject , typename TMemManager >
static void momo::internal::ObjectManager< TObject, TMemManager >::Relocate ( MemManager memManager,
Object srcObject,
Object dstObject 
)
inlinestaticnoexcept

◆ RelocateCreate()

template<typename TObject , typename TMemManager >
template<typename Iterator , typename ObjectCreator >
static void momo::internal::ObjectManager< TObject, TMemManager >::RelocateCreate ( MemManager memManager,
Iterator  srcBegin,
Iterator  dstBegin,
size_t  count,
ObjectCreator &&  objectCreator,
Object newObject 
)
inlinestatic

◆ RelocateExec()

template<typename TObject , typename TMemManager >
template<typename Iterator , typename Executor >
static void momo::internal::ObjectManager< TObject, TMemManager >::RelocateExec ( MemManager memManager,
Iterator  srcBegin,
Iterator  dstBegin,
size_t  count,
Executor &&  exec 
)
inlinestatic

◆ Replace()

template<typename TObject , typename TMemManager >
static void momo::internal::ObjectManager< TObject, TMemManager >::Replace ( MemManager memManager,
Object srcObject,
Object dstObject 
)
inlinestaticnoexcept

◆ ReplaceRelocate()

template<typename TObject , typename TMemManager >
static void momo::internal::ObjectManager< TObject, TMemManager >::ReplaceRelocate ( MemManager memManager,
Object srcObject,
Object midObject,
Object dstObject 
)
inlinestaticnoexcept

◆ ShiftNothrow()

template<typename TObject , typename TMemManager >
template<typename Iterator >
static void momo::internal::ObjectManager< TObject, TMemManager >::ShiftNothrow ( MemManager memManager,
Iterator  begin,
size_t  shift 
)
inlinestaticnoexcept

Member Data Documentation

◆ alignment

template<typename TObject , typename TMemManager >
const size_t momo::internal::ObjectManager< TObject, TMemManager >::alignment = ObjectAlignmenter<Object>::alignment
static

◆ isNothrowAnywayAssignable

template<typename TObject , typename TMemManager >
const bool momo::internal::ObjectManager< TObject, TMemManager >::isNothrowAnywayAssignable
static
Initial value:
= std::is_nothrow_move_assignable<Object>::value

◆ isNothrowMoveConstructible

template<typename TObject , typename TMemManager >
const bool momo::internal::ObjectManager< TObject, TMemManager >::isNothrowMoveConstructible
static
Initial value:
=
IsNothrowMoveConstructible<Object, MemManager>::value

◆ isNothrowRelocatable

template<typename TObject , typename TMemManager >
const bool momo::internal::ObjectManager< TObject, TMemManager >::isNothrowRelocatable = Relocator::isNothrowRelocatable
static

◆ isNothrowShiftable

template<typename TObject , typename TMemManager >
const bool momo::internal::ObjectManager< TObject, TMemManager >::isNothrowShiftable = isNothrowRelocatable || isNothrowSwappable
static

◆ isNothrowSwappable

template<typename TObject , typename TMemManager >
const bool momo::internal::ObjectManager< TObject, TMemManager >::isNothrowSwappable = IsNothrowSwappable<Object>::GetValue()
static

◆ isTriviallyRelocatable

template<typename TObject , typename TMemManager >
const bool momo::internal::ObjectManager< TObject, TMemManager >::isTriviallyRelocatable = Relocator::isTriviallyRelocatable
static

The documentation for this class was generated from the following file:
momo::internal::ObjectManager::isNothrowRelocatable
static const bool isNothrowRelocatable
Definition: ObjectManager.h:206
momo::internal::ObjectManager::isNothrowSwappable
static const bool isNothrowSwappable
Definition: ObjectManager.h:211