CAF 0.17.6
Loading...
Searching...
No Matches
caf::weak_intrusive_ptr< T > Class Template Reference

An intrusive, reference counting smart pointer implementation. More...

#include <weak_intrusive_ptr.hpp>

Inheritance diagram for caf::weak_intrusive_ptr< T >:
caf::detail::comparable< weak_intrusive_ptr< T > > caf::detail::comparable< weak_intrusive_ptr< T >, const T * > caf::detail::comparable< weak_intrusive_ptr< T >, std::nullptr_t >

Public Types

using pointer = T*
using const_pointer = const T*
using element_type = T
using reference = T&
using const_reference = const T&

Public Member Functions

 weak_intrusive_ptr (pointer raw_ptr, bool add_ref=true) noexcept
 weak_intrusive_ptr (weak_intrusive_ptr &&other) noexcept
 weak_intrusive_ptr (const weak_intrusive_ptr &other) noexcept
template<class Y>
 weak_intrusive_ptr (weak_intrusive_ptr< Y > other) noexcept
void swap (weak_intrusive_ptr &other) noexcept
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 reset (pointer new_value=nullptr, bool add_ref=true)
weak_intrusive_ptr & operator= (pointer ptr) noexcept
weak_intrusive_ptr & operator= (weak_intrusive_ptr other) noexcept
pointer get () const noexcept
pointer operator-> () const noexcept
reference operator* () const noexcept
bool operator! () const noexcept
 operator bool () const noexcept
ptrdiff_t compare (const_pointer ptr) const noexcept
ptrdiff_t compare (const weak_intrusive_ptr &other) const noexcept
ptrdiff_t compare (std::nullptr_t) const noexcept
intrusive_ptr< T > lock () const noexcept
 Tries to upgrade this weak reference to a strong reference.
pointer get_locked () const noexcept
 Tries to upgrade this weak reference to a strong reference.

Static Public Attributes

static constexpr bool has_weak_ptr_semantics = true

(Note that these are not member symbols.)

template<class X, typename Y>
bool operator== (const weak_intrusive_ptr< X > &lhs, const weak_intrusive_ptr< Y > &rhs)
template<class X, typename Y>
bool operator!= (const weak_intrusive_ptr< X > &lhs, const weak_intrusive_ptr< Y > &rhs)

Detailed Description

template<class T>
class caf::weak_intrusive_ptr< T >

An intrusive, reference counting smart pointer implementation.

Member Function Documentation

◆ get_locked()

template<class T>
pointer caf::weak_intrusive_ptr< T >::get_locked ( ) const
noexcept

Tries to upgrade this weak reference to a strong reference.

Returns a pointer with increased strong reference count on success, nullptr otherwise.


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