38 #ifndef LIBPMEMOBJ_CPP_TEMP_VALUE_HPP 39 #define LIBPMEMOBJ_CPP_TEMP_VALUE_HPP 54 #ifndef LIBPMEMOBJ_CPP_MAX_STACK_ALLOC_SIZE 55 #define LIBPMEMOBJ_CPP_MAX_STACK_ALLOC_SIZE 64 * (1 << 10) 63 template <
typename T,
bool NoExcept,
typename Enable =
void>
71 template <
typename T,
bool NoExcept>
74 typename
std::enable_if<NoExcept &&
76 LIBPMEMOBJ_CPP_MAX_STACK_ALLOC_SIZE)>::type> {
77 template <
typename... Args>
78 temp_value(Args &&... args) noexcept : t(std::forward<Args>(args)...)
96 template <
typename T,
bool NoExcept>
99 typename
std::enable_if<!NoExcept ||
101 LIBPMEMOBJ_CPP_MAX_STACK_ALLOC_SIZE)>::type> {
102 template <
typename... Args>
105 ptr = pmem::obj::make_persistent<T>(
106 std::forward<Args>(args)...);
111 pmem::obj::delete_persistent<T>(ptr);
Persistent pointer class.
Definition: common.hpp:125
Persistent_ptr transactional allocation functions for objects.
A persistent version of concurrent hash map implementation Ref: https://arxiv.org/abs/1509....
Definition: concurrent_hash_map.hpp:65
Template class for caching objects based on constructor's variadic template arguments and LIBPMEMOBJ_...
Definition: temp_value.hpp:64
A persistent version of concurrent hash map implementation Ref: https://arxiv.org/abs/1509....
Definition: allocation_flag.hpp:43