|
|
| 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.