Loading...
Searching...
No Matches
caf::intrusive_cow_ptr< T > Class Template Reference

An intrusive, reference counting smart pointer implementation with copy-on-write optimization. More...

`#include <intrusive_cow_ptr.hpp>`

Inheritance diagram for caf::intrusive_cow_ptr< T >:

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

## 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)
template<class T, class... Ts>
intrusive_cow_ptr< T > | make_copy_on_write (Ts &&... xs)
| Constructs an object of type T in an intrusive_cow_ptr.

## Detailed Description

template<class T>
class caf::intrusive_cow_ptr< T >

An intrusive, reference counting smart pointer implementation with copy-on-write optimization.

The documentation for this class was generated from the following files:

- /build/actor-framework-Z9pIPl/actor-framework-0.17.6/libcaf_core/caf/fwd.hpp
- /build/actor-framework-Z9pIPl/actor-framework-0.17.6/libcaf_core/caf/intrusive_cow_ptr.hpp
- /build/actor-framework-Z9pIPl/actor-framework-0.17.6/libcaf_core/caf/make_copy_on_write.hpp