PMDK C++ bindings
1.7.1
This is the C++ bindings documentation for PMDK's libpmemobj.
|
Persistent_ptr transactional allocation functions for objects. More...
#include <libpmemobj++/allocation_flag.hpp>
#include <libpmemobj++/detail/check_persistent_ptr_array.hpp>
#include <libpmemobj++/detail/common.hpp>
#include <libpmemobj++/detail/life.hpp>
#include <libpmemobj++/detail/pexceptions.hpp>
#include <libpmemobj++/detail/variadic.hpp>
#include <libpmemobj++/make_persistent_array.hpp>
#include <libpmemobj/tx_base.h>
#include <new>
#include <utility>
Go to the source code of this file.
Functions | |
template<typename T , typename... Args> | |
detail::pp_if_not_array< T >::type | pmem::obj::make_persistent (allocation_flag flag, Args &&... args) |
Transactionally allocate and construct an object of type T. More... | |
template<typename T , typename... Args> | |
std::enable_if< !detail::is_first_arg_same< allocation_flag, Args... >::value, typename detail::pp_if_not_array< T >::type >::type | pmem::obj::make_persistent (Args &&... args) |
Transactionally allocate and construct an object of type T. More... | |
template<typename T > | |
void | pmem::obj::delete_persistent (typename detail::pp_if_not_array< T >::type ptr) |
Transactionally free an object of type T held in a persistent_ptr. More... | |
Persistent_ptr transactional allocation functions for objects.
The typical usage examples would be:
void pmem::obj::delete_persistent | ( | typename detail::pp_if_not_array< T >::type | ptr | ) |
Transactionally free an object of type T held in a persistent_ptr.
This function can be used to transactionally free an object. Calls the object's destructor before freeing memory. Cannot be used for array types.
[in,out] | ptr | persistent pointer to an object that is not an array. |
transaction_scope_error | if called outside of an active transaction |
transaction_free_error | on transactional free failure. |
detail::pp_if_not_array<T>::type pmem::obj::make_persistent | ( | allocation_flag | flag, |
Args &&... | args | ||
) |
Transactionally allocate and construct an object of type T.
This function can be used to transactionally allocate an object. Cannot be used for array types.
[in] | flag | affects behaviour of allocator |
[in,out] | args | a list of parameters passed to the constructor. |
transaction_scope_error | if called outside of an active transaction |
transaction_alloc_error | on transactional allocation failure. |
rethrow | exception from T constructor |
std::enable_if< !detail::is_first_arg_same<allocation_flag, Args...>::value, typename detail::pp_if_not_array<T>::type>::type pmem::obj::make_persistent | ( | Args &&... | args | ) |
Transactionally allocate and construct an object of type T.
This function can be used to transactionally allocate an object. Cannot be used for array types.
[in,out] | args | a list of parameters passed to the constructor. |
transaction_scope_error | if called outside of an active transaction |
transaction_alloc_error | on transactional allocation failure. |
rethrow | exception from T constructor |