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::non_const_arg_storage< T > Class Template Reference

Storage for a non-const, non-basic, non-distributed object that is retrieved by non-const lvalue reference to non-basic object. More...

Public Member Functions

 non_const_arg_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 >
 non_const_arg_storage (Tuple &&t) noexcept
 Packs the object contained in tuple t. More...
 
 non_const_arg_storage (non_const_arg_storage const &)=delete
 
non_const_arg_storageoperator= (non_const_arg_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::non_const_arg_storage< T >

Storage for a non-const, non-basic, non-distributed object that is retrieved by non-const lvalue reference to non-basic object.

Template Parameters
TObject type.

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

See also
is_basic, is_p_object

Constructor & Destructor Documentation

◆ non_const_arg_storage() [1/2]

template<typename T >
stapl::runtime::non_const_arg_storage< T >::non_const_arg_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.

◆ non_const_arg_storage() [2/2]

template<typename T >
template<typename Tuple >
stapl::runtime::non_const_arg_storage< T >::non_const_arg_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::non_const_arg_storage< T >::packed_size ( T const &  t)
staticnoexcept

Returns the packed size of t.

◆ get() [1/2]

template<typename T >
T& stapl::runtime::non_const_arg_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::non_const_arg_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: