|
| persistent_ptr_base () |
| Default constructor, zeroes the PMEMoid.
|
|
| persistent_ptr_base (PMEMoid oid) noexcept |
| PMEMoid constructor. More...
|
|
| persistent_ptr_base (element_type *ptr) |
| Volatile pointer constructor. More...
|
|
template<typename U , typename = typename std::enable_if< !std::is_same<T, U>::value && std::is_same<typename std::remove_cv<T>::type, U>::value>::type> |
| persistent_ptr_base (persistent_ptr_base< U > const &r) noexcept |
| Copy constructor from a different persistent_ptr<>. More...
|
|
template<typename U , typename Dummy = void, typename = typename std::enable_if< !std::is_same< typename std::remove_cv<T>::type, typename std::remove_cv<U>::type>::value && !std::is_void<U>::value, decltype(static_cast<T *>(std::declval<U *>()))>::type> |
| persistent_ptr_base (persistent_ptr_base< U > const &r) noexcept |
| Copy constructor from a different persistent_ptr<>. More...
|
|
template<typename Y , typename = typename std::enable_if< !std::is_same< typename std::remove_cv<T>::type, typename std::remove_cv<Y>::type>::value && !std::is_void<Y>::value, decltype(static_cast<T *>(std::declval<Y *>()))>::type> |
| operator persistent_ptr_base< Y > () noexcept |
| Conversion operator to a different persistent_ptr<>. More...
|
|
| persistent_ptr_base (persistent_ptr_base &&r) noexcept |
| Defaulted move constructor.
|
|
persistent_ptr_base & | operator= (persistent_ptr_base &&r) |
| Defaulted move assignment operator.
|
|
persistent_ptr_base & | operator= (persistent_ptr_base const &r) |
| Assignment operator. More...
|
|
persistent_ptr_base & | operator= (std::nullptr_t &&) |
| Nullptr move assignment operator. More...
|
|
template<typename Y , typename = typename std::enable_if< std::is_convertible<Y *, T *>::value>::type> |
persistent_ptr_base & | operator= (persistent_ptr_base< Y > const &r) |
| Converting assignment operator from a different persistent_ptr<>. More...
|
|
void | swap (persistent_ptr_base &other) |
| Swaps two persistent_ptr objects of the same type. More...
|
|
element_type * | get () const noexcept |
| Get a direct pointer. More...
|
|
const PMEMoid & | raw () const noexcept |
| Get PMEMoid encapsulated by this object. More...
|
|
PMEMoid * | raw_ptr () noexcept |
| Get pointer to PMEMoid encapsulated by this object. More...
|
|
template<typename T>
class pmem::detail::persistent_ptr_base< T >
Persistent_ptr base class.
Implements some of the functionality of the persistent_ptr class. It defines all applicable conversions from and to a persistent_ptr_base. This class is an implementation detail and is not to be instantiated. It cannot be declared as virtual due to the problem with rebuilding the vtable.
template<typename T>
template<typename U , typename Dummy = void, typename = typename std::enable_if< !std::is_same< typename std::remove_cv<T>::type, typename std::remove_cv<U>::type>::value && !std::is_void<U>::value, decltype(static_cast<T *>(std::declval<U *>()))>::type>
Copy constructor from a different persistent_ptr<>.
Available only for convertible, non-void types.
template<typename T>
template<typename Y , typename = typename std::enable_if< !std::is_same< typename std::remove_cv<T>::type, typename std::remove_cv<Y>::type>::value && !std::is_void<Y>::value, decltype(static_cast<T *>(std::declval<Y *>()))>::type>
Conversion operator to a different persistent_ptr<>.
Available only for convertible, non-void types.