Lugdunum  0.1.0
Namespaces | Classes | Typedefs | Functions
lug::System::Memory Namespace Reference

Namespaces

 Allocator
 
 Area
 
 Policies
 

Classes

class  Arena
 
class  FreeList
 

Typedefs

template<typename T , typename Deleter = typename priv::make_unique_deleter<T>::Deleter>
using unique_ptr = std::unique_ptr< T, Deleter >
 

Functions

template<typename T , class Arena , class ... Args>
T * new_one (size_t alignment, const char *file, size_t line, Arena &arena, Args &&... args)
 
template<typename T , class Arena >
void delete_one (T *object, Arena &arena)
 
template<typename T , class Arena , class ... Args, typename std::enable_if<!std::is_pod< T >::value, int >::type = 0>
T * new_array (size_t alignment, size_t nb, const char *file, size_t line, Arena &arena, Args &&... args)
 
template<typename T , class Arena , typename std::enable_if<!std::is_pod< T >::value, int >::type = 0>
void delete_array (T *ptr, Arena &arena)
 
template<typename T , class Arena , typename std::enable_if< std::is_pod< T >::value, int >::type = 0>
T * new_array (size_t alignment, size_t nb, const char *file, size_t line, Arena &arena)
 
template<typename T , class Arena , typename ... Args>
priv::make_unique_if< T >::SingleObject make_unique (Arena &arena, Args &&... args)
 
template<typename T , class Arena , typename ... Args>
priv::make_unique_if< T >::SingleObject make_unique_align (Arena &arena, size_t alignment, Args &&... args)
 
template<typename T , class Arena , typename ... Args, typename std::enable_if<!std::is_pod< T >::value, int >::type = 0>
priv::make_unique_if< T >::UnknownBound make_unique (Arena &arena, size_t size, Args &&... args)
 
template<typename T , class Arena , typename ... Args, typename std::enable_if<!std::is_pod< T >::value, int >::type = 0>
priv::make_unique_if< T >::UnknownBound make_unique_align (Arena &arena, size_t alignment, size_t size, Args &&... args)
 
template<typename T , class Arena , typename std::enable_if< std::is_pod< T >::value, int >::type = 0>
priv::make_unique_if< T >::UnknownBound make_unique (Arena &arena, size_t size)
 
template<typename T , class Arena , typename std::enable_if< std::is_pod< T >::value, int >::type = 0>
priv::make_unique_if< T >::UnknownBound make_unique_align (Arena &arena, size_t alignment, size_t size)
 
template<typename T , class Arena , typename ... Args, typename std::enable_if<!std::is_pod< T >::value, int >::type = 0>
priv::make_unique_if< T >::KnownBound make_unique (Arena &arena, Args &&... args)
 
template<typename T , class Arena , typename ... Args, typename std::enable_if<!std::is_pod< T >::value, int >::type = 0>
priv::make_unique_if< T >::KnownBound make_unique_align (Arena &arena, size_t alignment, Args &&... args)
 
template<typename T , class Arena , typename std::enable_if< std::is_pod< T >::value, int >::type = 0>
priv::make_unique_if< T >::KnownBound make_unique (Arena &arena)
 
template<typename T , class Arena , typename std::enable_if< std::is_pod< T >::value, int >::type = 0>
priv::make_unique_if< T >::KnownBound make_unique_align (Arena &arena, size_t alignment)
 

Typedef Documentation

◆ unique_ptr

template<typename T , typename Deleter = typename priv::make_unique_deleter<T>::Deleter>
using lug::System::Memory::unique_ptr = typedef std::unique_ptr<T, Deleter>

Definition at line 80 of file Memory.hpp.

Function Documentation

◆ new_one()

template<typename T , class Arena , class ... Args>
T* lug::System::Memory::new_one ( size_t  alignment,
const char *  file,
size_t  line,
Arena arena,
Args &&...  args 
)

◆ delete_one()

template<typename T , class Arena >
void lug::System::Memory::delete_one ( T *  object,
Arena arena 
)

◆ new_array() [1/2]

template<typename T , class Arena , class ... Args, typename std::enable_if<!std::is_pod< T >::value, int >::type = 0>
T * lug::System::Memory::new_array ( size_t  alignment,
size_t  nb,
const char *  file,
size_t  line,
Arena arena,
Args &&...  args 
)
delete

◆ delete_array()

template<typename T , class Arena , typename std::enable_if<!std::is_pod< T >::value, int >::type = 0>
void lug::System::Memory::delete_array ( T *  ptr,
Arena arena 
)

◆ new_array() [2/2]

template<typename T , class Arena , typename std::enable_if< std::is_pod< T >::value, int >::type = 0>
T* lug::System::Memory::new_array ( size_t  alignment,
size_t  nb,
const char *  file,
size_t  line,
Arena arena 
)

◆ make_unique() [1/5]

template<typename T , class Arena , typename ... Args>
priv::make_unique_if<T>::SingleObject lug::System::Memory::make_unique ( Arena arena,
Args &&...  args 
)

◆ make_unique_align() [1/5]

template<typename T , class Arena , typename ... Args>
priv::make_unique_if<T>::SingleObject lug::System::Memory::make_unique_align ( Arena arena,
size_t  alignment,
Args &&...  args 
)

◆ make_unique() [2/5]

template<typename T , class Arena , typename ... Args, typename std::enable_if<!std::is_pod< T >::value, int >::type = 0>
priv::make_unique_if< T >::UnknownBound lug::System::Memory::make_unique ( Arena arena,
size_t  size,
Args &&...  args 
)
delete

◆ make_unique_align() [2/5]

template<typename T , class Arena , typename ... Args, typename std::enable_if<!std::is_pod< T >::value, int >::type = 0>
priv::make_unique_if< T >::UnknownBound lug::System::Memory::make_unique_align ( Arena arena,
size_t  alignment,
size_t  size,
Args &&...  args 
)
delete

◆ make_unique() [3/5]

template<typename T , class Arena , typename std::enable_if< std::is_pod< T >::value, int >::type = 0>
priv::make_unique_if<T>::UnknownBound lug::System::Memory::make_unique ( Arena arena,
size_t  size 
)

◆ make_unique_align() [3/5]

template<typename T , class Arena , typename std::enable_if< std::is_pod< T >::value, int >::type = 0>
priv::make_unique_if<T>::UnknownBound lug::System::Memory::make_unique_align ( Arena arena,
size_t  alignment,
size_t  size 
)

◆ make_unique() [4/5]

template<typename T , class Arena , typename ... Args, typename std::enable_if<!std::is_pod< T >::value, int >::type = 0>
priv::make_unique_if< T >::KnownBound lug::System::Memory::make_unique ( Arena arena,
Args &&...  args 
)
delete

◆ make_unique_align() [4/5]

template<typename T , class Arena , typename ... Args, typename std::enable_if<!std::is_pod< T >::value, int >::type = 0>
priv::make_unique_if< T >::KnownBound lug::System::Memory::make_unique_align ( Arena arena,
size_t  alignment,
Args &&...  args 
)
delete

◆ make_unique() [5/5]

template<typename T , class Arena , typename std::enable_if< std::is_pod< T >::value, int >::type = 0>
priv::make_unique_if<T>::KnownBound lug::System::Memory::make_unique ( Arena arena)

◆ make_unique_align() [5/5]

template<typename T , class Arena , typename std::enable_if< std::is_pod< T >::value, int >::type = 0>
priv::make_unique_if<T>::KnownBound lug::System::Memory::make_unique_align ( Arena arena,
size_t  alignment 
)