PMDK C++ bindings  1.11
This is the C++ bindings documentation for PMDK's libpmemobj.
Classes | Namespaces | Functions
self_relative_ptr.hpp File Reference

Persistent self-relative smart pointer. More...

#include <libpmemobj++/detail/specialization.hpp>
#include <libpmemobj++/experimental/self_relative_ptr_base.hpp>
#include <libpmemobj++/persistent_ptr.hpp>
#include <type_traits>

Go to the source code of this file.

Classes

class  pmem::obj::experimental::self_relative_ptr< T >
 Persistent self-relative pointer class. More...
 

Namespaces

 pmem
 Persistent memory namespace.
 
 pmem::obj
 Main libpmemobj namespace.
 
 pmem::obj::experimental
 Experimental implementations.
 

Functions

template<class T >
void pmem::obj::experimental::swap (self_relative_ptr< T > &a, self_relative_ptr< T > &b)
 Swaps two self_relative_ptr objects of the same type. More...
 
template<typename T , typename Y >
bool pmem::obj::experimental::operator== (self_relative_ptr< T > const &lhs, self_relative_ptr< Y > const &rhs) noexcept
 Equality operator.
 
template<typename T , typename Y >
bool pmem::obj::experimental::operator!= (self_relative_ptr< T > const &lhs, self_relative_ptr< Y > const &rhs) noexcept
 Inequality operator.
 
template<typename T >
bool pmem::obj::experimental::operator== (self_relative_ptr< T > const &lhs, std::nullptr_t) noexcept
 Equality operator with nullptr.
 
template<typename T >
bool pmem::obj::experimental::operator== (std::nullptr_t, self_relative_ptr< T > const &lhs) noexcept
 Equality operator with nullptr.
 
template<typename T >
bool pmem::obj::experimental::operator!= (self_relative_ptr< T > const &lhs, std::nullptr_t) noexcept
 Inequality operator with nullptr.
 
template<typename T >
bool pmem::obj::experimental::operator!= (std::nullptr_t, self_relative_ptr< T > const &lhs) noexcept
 Inequality operator with nullptr.
 
template<typename T , typename Y >
bool pmem::obj::experimental::operator< (self_relative_ptr< T > const &lhs, self_relative_ptr< Y > const &rhs) noexcept
 Less than operator. More...
 
template<typename T , typename Y >
bool pmem::obj::experimental::operator<= (self_relative_ptr< T > const &lhs, self_relative_ptr< Y > const &rhs) noexcept
 Less or equal than operator. More...
 
template<typename T , typename Y >
bool pmem::obj::experimental::operator> (self_relative_ptr< T > const &lhs, self_relative_ptr< Y > const &rhs) noexcept
 Greater than operator. More...
 
template<typename T , typename Y >
bool pmem::obj::experimental::operator>= (self_relative_ptr< T > const &lhs, self_relative_ptr< Y > const &rhs) noexcept
 Greater or equal than operator. More...
 
template<typename T >
bool pmem::obj::experimental::operator< (self_relative_ptr< T > const &lhs, std::nullptr_t) noexcept
 Compare a self_relative_ptr with a null pointer.
 
template<typename T >
bool pmem::obj::experimental::operator< (std::nullptr_t, self_relative_ptr< T > const &rhs) noexcept
 Compare a self_relative_ptr with a null pointer.
 
template<typename T >
bool pmem::obj::experimental::operator<= (self_relative_ptr< T > const &lhs, std::nullptr_t) noexcept
 Compare a self_relative_ptr with a null pointer.
 
template<typename T >
bool pmem::obj::experimental::operator<= (std::nullptr_t, self_relative_ptr< T > const &rhs) noexcept
 Compare a self_relative_ptr with a null pointer.
 
template<typename T >
bool pmem::obj::experimental::operator> (self_relative_ptr< T > const &lhs, std::nullptr_t) noexcept
 Compare a self_relative_ptr with a null pointer.
 
template<typename T >
bool pmem::obj::experimental::operator> (std::nullptr_t, self_relative_ptr< T > const &rhs) noexcept
 Compare a self_relative_ptr with a null pointer.
 
template<typename T >
bool pmem::obj::experimental::operator>= (self_relative_ptr< T > const &lhs, std::nullptr_t) noexcept
 Compare a self_relative_ptr with a null pointer.
 
template<typename T >
bool pmem::obj::experimental::operator>= (std::nullptr_t, self_relative_ptr< T > const &rhs) noexcept
 Compare a self_relative_ptr with a null pointer.
 
template<typename T >
self_relative_ptr< T > pmem::obj::experimental::operator+ (self_relative_ptr< T > const &lhs, std::ptrdiff_t s)
 Addition operator for self-relative pointers.
 
template<typename T >
self_relative_ptr< T > pmem::obj::experimental::operator- (self_relative_ptr< T > const &lhs, std::ptrdiff_t s)
 Subtraction operator for self-relative pointers.
 
template<typename T , typename Y , typename = typename std::enable_if< std::is_same<typename std::remove_cv<T>::type, typename std::remove_cv<Y>::type>::value>>
ptrdiff_t pmem::obj::experimental::operator- (self_relative_ptr< T > const &lhs, self_relative_ptr< Y > const &rhs)
 Subtraction operator for self-relative pointers of identical type. More...
 
template<typename T >
std::ostream & pmem::obj::experimental::operator<< (std::ostream &os, self_relative_ptr< T > const &ptr)
 Ostream operator.
 

Detailed Description

Persistent self-relative smart pointer.