Lumiera 0.pre.04
»edit your freedom«
Loading...
Searching...
No Matches
UninitialisedDynBlock< T > Class Template Reference

#include "lib/uninitialised-storage.hpp"

Description

template<typename T>
class lib::UninitialisedDynBlock< T >

Managed uninitialised Heap-allocated storage with array like access.

Template Parameters
Tthe nominal type assumed to sit in each »slot«

Definition at line 129 of file uninitialised-storage.hpp.

Public Member Functions

T * allocate (size_t cnt)
 
void discard ()
 
 UninitialisedDynBlock ()=default
 
 ~UninitialisedDynBlock ()
 
 UninitialisedDynBlock (size_t cnt)
 
 UninitialisedDynBlock (UninitialisedDynBlock &&rr)
 
 UninitialisedDynBlock (UninitialisedDynBlock const &)=delete
 
UninitialisedDynBlockoperator= (UninitialisedDynBlock &&)=delete
 
UninitialisedDynBlockoperator= (UninitialisedDynBlock const &)=delete
 
 operator bool () const
 
size_t size () const
 
_Arrarray ()
 
_Arr const & array () const
 
T * front ()
 
T const * front () const
 
T * after ()
 
T const * after () const
 
T * back ()
 
T const * back () const
 
T & operator[] (size_t idx)
 
T const & operator[] (size_t idx) const
 
template<typename... Args>
T & createAt (size_t idx, Args &&...args)
 
void destroyAt (size_t idx)
 

Friends

void swap (UninitialisedDynBlock &u1, UninitialisedDynBlock &u2)
 

Private Types

using _Arr = T[]
 

Private Attributes

void * buff_ {nullptr}
 
size_t size_ {0}
 

Constructor & Destructor Documentation

◆ UninitialisedDynBlock() [1/4]

template<typename T >
UninitialisedDynBlock ( )
default

◆ ~UninitialisedDynBlock()

template<typename T >
~UninitialisedDynBlock ( )
inline

Definition at line 157 of file uninitialised-storage.hpp.

References UninitialisedDynBlock< T >::buff_, and UninitialisedDynBlock< T >::discard().

+ Here is the call graph for this function:

◆ UninitialisedDynBlock() [2/4]

template<typename T >
UninitialisedDynBlock ( size_t  cnt)
inlineexplicit

Definition at line 163 of file uninitialised-storage.hpp.

References UninitialisedDynBlock< T >::allocate().

+ Here is the call graph for this function:

◆ UninitialisedDynBlock() [3/4]

template<typename T >
UninitialisedDynBlock ( UninitialisedDynBlock< T > &&  rr)
inline

Definition at line 169 of file uninitialised-storage.hpp.

References UninitialisedDynBlock< T >::swap.

◆ UninitialisedDynBlock() [4/4]

template<typename T >
UninitialisedDynBlock ( UninitialisedDynBlock< T > const &  )
delete

Member Typedef Documentation

◆ _Arr

template<typename T >
using _Arr = T[]
private

Definition at line 131 of file uninitialised-storage.hpp.

Member Function Documentation

◆ allocate()

template<typename T >
T * allocate ( size_t  cnt)
inline

Definition at line 138 of file uninitialised-storage.hpp.

References UninitialisedDynBlock< T >::buff_, UninitialisedDynBlock< T >::discard(), UninitialisedDynBlock< T >::front(), and UninitialisedDynBlock< T >::size_.

Referenced by UninitialisedDynBlock< T >::UninitialisedDynBlock(), and MemoryPool::addAlloc().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ discard()

template<typename T >
void discard ( )
inline

Definition at line 148 of file uninitialised-storage.hpp.

References UninitialisedDynBlock< T >::buff_, and UninitialisedDynBlock< T >::size_.

Referenced by UninitialisedDynBlock< T >::~UninitialisedDynBlock(), and UninitialisedDynBlock< T >::allocate().

+ Here is the caller graph for this function:

◆ operator=() [1/2]

template<typename T >
UninitialisedDynBlock & operator= ( UninitialisedDynBlock< T > &&  )
delete

◆ operator=() [2/2]

template<typename T >
UninitialisedDynBlock & operator= ( UninitialisedDynBlock< T > const &  )
delete

◆ operator bool()

template<typename T >
operator bool ( ) const
inlineexplicit

Definition at line 188 of file uninitialised-storage.hpp.

References UninitialisedDynBlock< T >::buff_.

◆ size()

template<typename T >
size_t size ( ) const
inline

Definition at line 194 of file uninitialised-storage.hpp.

References UninitialisedDynBlock< T >::size_.

◆ array() [1/2]

template<typename T >
_Arr & array ( )
inline

Definition at line 201 of file uninitialised-storage.hpp.

References UninitialisedDynBlock< T >::buff_.

Referenced by UninitialisedDynBlock< T >::after(), UninitialisedDynBlock< T >::after(), UninitialisedDynBlock< T >::front(), UninitialisedDynBlock< T >::front(), UninitialisedDynBlock< T >::operator[](), and UninitialisedDynBlock< T >::operator[]().

+ Here is the caller graph for this function:

◆ array() [2/2]

template<typename T >
_Arr const & array ( ) const
inline

Definition at line 207 of file uninitialised-storage.hpp.

References UninitialisedDynBlock< T >::buff_.

◆ front() [1/2]

template<typename T >
T * front ( )
inline

Definition at line 213 of file uninitialised-storage.hpp.

References UninitialisedDynBlock< T >::array().

Referenced by MemoryPool::addAlloc(), UninitialisedDynBlock< T >::allocate(), and ComputationalLoad::causeMemProcessLoad().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ front() [2/2]

template<typename T >
T const * front ( ) const
inline

Definition at line 214 of file uninitialised-storage.hpp.

References UninitialisedDynBlock< T >::array().

+ Here is the call graph for this function:

◆ after() [1/2]

template<typename T >
T * after ( )
inline

Definition at line 215 of file uninitialised-storage.hpp.

References UninitialisedDynBlock< T >::array(), and UninitialisedDynBlock< T >::size_.

Referenced by UninitialisedDynBlock< T >::back(), and UninitialisedDynBlock< T >::back().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ after() [2/2]

template<typename T >
T const * after ( ) const
inline

Definition at line 216 of file uninitialised-storage.hpp.

References UninitialisedDynBlock< T >::array(), and UninitialisedDynBlock< T >::size_.

+ Here is the call graph for this function:

◆ back() [1/2]

template<typename T >
T * back ( )
inline

Definition at line 217 of file uninitialised-storage.hpp.

References UninitialisedDynBlock< T >::after().

+ Here is the call graph for this function:

◆ back() [2/2]

template<typename T >
T const * back ( ) const
inline

Definition at line 218 of file uninitialised-storage.hpp.

References UninitialisedDynBlock< T >::after().

+ Here is the call graph for this function:

◆ operator[]() [1/2]

template<typename T >
T & operator[] ( size_t  idx)
inline

Definition at line 220 of file uninitialised-storage.hpp.

References UninitialisedDynBlock< T >::array().

Referenced by UninitialisedDynBlock< T >::createAt(), and UninitialisedDynBlock< T >::destroyAt().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ operator[]() [2/2]

template<typename T >
T const & operator[] ( size_t  idx) const
inline

Definition at line 221 of file uninitialised-storage.hpp.

References UninitialisedDynBlock< T >::array().

+ Here is the call graph for this function:

◆ createAt()

template<typename T >
template<typename... Args>
T & createAt ( size_t  idx,
Args &&...  args 
)
inline

Definition at line 226 of file uninitialised-storage.hpp.

References UninitialisedDynBlock< T >::operator[]().

+ Here is the call graph for this function:

◆ destroyAt()

template<typename T >
void destroyAt ( size_t  idx)
inline

Definition at line 232 of file uninitialised-storage.hpp.

References UninitialisedDynBlock< T >::operator[]().

+ Here is the call graph for this function:

Member Data Documentation

◆ buff_

◆ size_

Friends And Related Symbol Documentation

◆ swap

template<typename T >
void swap ( UninitialisedDynBlock< T > &  u1,
UninitialisedDynBlock< T > &  u2 
)
friend
+ Inheritance diagram for UninitialisedDynBlock< T >:
+ Collaboration diagram for UninitialisedDynBlock< T >:

The documentation for this class was generated from the following file: