STAPL API Reference          
Overview   Containers   Algorithms   Views   Skeletons   Run-Time System
Modules     Classes    
List of all members | Public Member Functions | Static Public Member Functions
stapl::runtime::copied_ref_storage< T > Class Template Reference

Storage for a moved object that is retrieved by non-const reference. More...

Public Member Functions

 copied_ref_storage (T const &t, void *const base, std::size_t &size) noexcept
 Constructs a new object by packing t in it. More...
 
template<typename Tuple >
 copied_ref_storage (Tuple &&t) noexcept
 Packs the object contained in tuple t. More...
 
 copied_ref_storage (copied_ref_storage const &)=delete
 
copied_ref_storageoperator= (copied_ref_storage const &)=delete
 
T & get (void *const base)
 Returns the stored object after unpacking it. More...
 
T & get (void *const base, std::size_t &size)
 Returns the stored object after unpacking it. More...
 

Static Public Member Functions

static std::size_t packed_size (T const &t) noexcept
 Returns the packed size of t. More...
 

Detailed Description

template<typename T>
class stapl::runtime::copied_ref_storage< T >

Storage for a moved object that is retrieved by non-const reference.

Template Parameters
TObject type.

During unpacking, a new object is copy constructed from the stored object if the copy has failed and returned by reference. The copy constructed object is deleted when the destructor is called.

Constructor & Destructor Documentation

◆ copied_ref_storage() [1/2]

template<typename T >
stapl::runtime::copied_ref_storage< T >::copied_ref_storage ( T const &  t,
void *const  base,
std::size_t &  size 
)
noexcept

Constructs a new object by packing t in it.

This constructor will copy the dynamic part of the object at base + size, which should be big enough to fit it.

Parameters
tObject to pack.
basePointer to buffer start where the dynamic part of t can be stored in.
sizeOffset from base where space is available.

◆ copied_ref_storage() [2/2]

template<typename T >
template<typename Tuple >
stapl::runtime::copied_ref_storage< T >::copied_ref_storage ( Tuple &&  t)
noexcept

Packs the object contained in tuple t.

Parameters
tTuple with the object to pack, the start of the buffer for the dynamic part of the object and the offset from the start of the buffer.

Member Function Documentation

◆ packed_size()

template<typename T >
static std::size_t stapl::runtime::copied_ref_storage< T >::packed_size ( T const &  t)
staticnoexcept

Returns the packed size of t.

◆ get() [1/2]

template<typename T >
T& stapl::runtime::copied_ref_storage< T >::get ( void *const  base)

Returns the stored object after unpacking it.

Parameters
baseBuffer where the dynamic part of the object is stored.

◆ get() [2/2]

template<typename T >
T& stapl::runtime::copied_ref_storage< T >::get ( void *const  base,
std::size_t &  size 
)

Returns the stored object after unpacking it.

Parameters
baseBuffer where the dynamic part of the object is stored.
sizeVariable to store how many bytes were unpacked.

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