|
C++ Actor Framework 0.19
|
An intrusive, reference counting smart pointer implementation with copy-on-write optimization. More...
#include <intrusive_cow_ptr.hpp>
Public Types | |
| using | pointer = T * |
| using | const_pointer = const T * |
| using | element_type = T |
| using | reference = T & |
| using | const_reference = const T & |
| using | counting_pointer = intrusive_ptr< T > |
Public Member Functions | |
| intrusive_cow_ptr (intrusive_cow_ptr &&) noexcept=default | |
| intrusive_cow_ptr (const intrusive_cow_ptr &) noexcept=default | |
| intrusive_cow_ptr (std::nullptr_t) noexcept | |
| template<class Y > | |
| intrusive_cow_ptr (intrusive_cow_ptr< Y > other) noexcept | |
| intrusive_cow_ptr (counting_pointer p) noexcept | |
| intrusive_cow_ptr (pointer ptr, bool add_ref=true) noexcept | |
| intrusive_cow_ptr & | operator= (intrusive_cow_ptr &&) noexcept=default |
| intrusive_cow_ptr & | operator= (const intrusive_cow_ptr &) noexcept=default |
| intrusive_cow_ptr & | operator= (counting_pointer x) noexcept |
| template<class U = T, class... Ts> | |
| void | emplace (Ts &&... xs) |
| ptrdiff_t | compare (std::nullptr_t) const noexcept |
| ptrdiff_t | compare (const_pointer ptr) const noexcept |
| ptrdiff_t | compare (const counting_pointer &other) const noexcept |
| ptrdiff_t | compare (const intrusive_cow_ptr &other) const noexcept |
| void | swap (intrusive_cow_ptr &other) noexcept |
Swaps the managed object with other. | |
| void | reset (pointer p=nullptr, bool add_ref=true) noexcept |
| Replaces the managed object. | |
| pointer | detach () noexcept |
Returns the raw pointer without modifying reference count and sets this to nullptr. | |
| pointer | release () noexcept |
Returns the raw pointer without modifying reference count and sets this to nullptr. | |
| void | unshare () |
| Forces a copy of the managed object unless it already has a reference count of exactly 1. | |
| pointer | unshared_ptr () |
| Returns a mutable pointer to the managed object. | |
| reference | unshared () |
| Returns a mutable reference to the managed object. | |
| const_pointer | get () const noexcept |
| Returns a read-only pointer to the managed object. | |
| const counting_pointer & | counting_ptr () const noexcept |
| Returns the intrusive pointer managing the object. | |
| const_pointer | operator-> () const noexcept |
| Returns a read-only pointer to the managed object. | |
| const_reference | operator* () const noexcept |
| Returns a read-only reference to the managed object. | |
| operator bool () const noexcept | |
| template<class C > | |
| intrusive_cow_ptr< C > | downcast () const noexcept |
| template<class C > | |
| intrusive_cow_ptr< C > | upcast () const noexcept |
Static Public Member Functions | |
| template<class... Ts> | |
| static intrusive_cow_ptr | make (Ts &&... xs) |
Constructs an object of type T in an intrusive_cow_ptr. | |
Related Symbols | |
(Note that these are not member symbols.) | |
| template<class T > | |
| T * | default_intrusive_cow_ptr_unshare (T *&ptr) |
| Default implementation for unsharing values. | |
| template<class T > | |
| T * | intrusive_cow_ptr_unshare (T *&ptr) |
| Customization point for allowing intrusive_cow_ptr<T> with a forward declared T. | |
| template<class T > | |
| std::string | to_string (const intrusive_cow_ptr< T > &x) |
An intrusive, reference counting smart pointer implementation with copy-on-write optimization.