|
|
constexpr | cycle_weak_ptr () noexcept |
| | Default constructor.
|
| |
|
| cycle_weak_ptr (const cycle_weak_ptr &other) noexcept |
| | Copy constructor.
|
| |
| | cycle_weak_ptr (cycle_weak_ptr &&other) noexcept |
| | Move constructor. More...
|
| |
|
template<typename U , typename = std::enable_if_t<std::is_convertible_v<U*, T*>>> |
| | cycle_weak_ptr (const cycle_weak_ptr< U > &other) noexcept |
| | Copy constructor.
|
| |
| template<typename U , typename = std::enable_if_t<std::is_convertible_v<U*, T*>>> |
| | cycle_weak_ptr (cycle_weak_ptr< U > &&other) noexcept |
| | Move constructor. More...
|
| |
| template<typename U , typename = std::enable_if_t<std::is_convertible_v<U*, T*>>> |
| | cycle_weak_ptr (const cycle_gptr< U > &other) noexcept |
| | Create weak pointer from other. More...
|
| |
| template<typename U , typename = std::enable_if_t<std::is_convertible_v<U*, T*>>> |
| | cycle_weak_ptr (const cycle_member_ptr< U > &other) noexcept |
| | Create weak pointer from other. More...
|
| |
|
auto | operator= (const cycle_weak_ptr &other) noexcept -> cycle_weak_ptr & |
| | Copy assignment.
|
| |
| auto | operator= (cycle_weak_ptr &&other) noexcept -> cycle_weak_ptr & |
| | Move assignment. More...
|
| |
|
template<typename U , typename = std::enable_if_t<std::is_convertible_v<U*, T*>>> |
| auto | operator= (const cycle_weak_ptr< U > &other) noexcept -> cycle_weak_ptr & |
| | Copy assignment.
|
| |
| template<typename U , typename = std::enable_if_t<std::is_convertible_v<U*, T*>>> |
| auto | operator= (cycle_weak_ptr< U > &&other) noexcept -> cycle_weak_ptr & |
| | Move assignment. More...
|
| |
|
template<typename U , typename = std::enable_if_t<std::is_convertible_v<U*, T*>>> |
| auto | operator= (const cycle_gptr< U > &other) noexcept -> cycle_weak_ptr & |
| | Assign other. post this->lock() == other.
|
| |
|
template<typename U , typename = std::enable_if_t<std::is_convertible_v<U*, T*>>> |
| auto | operator= (const cycle_member_ptr< U > &other) noexcept -> cycle_weak_ptr & |
| | Assign other. post this->lock() == other.
|
| |
| auto | reset () noexcept -> void |
| | Reset this pointer. More...
|
| |
|
auto | swap (cycle_weak_ptr &other) noexcept -> void |
| | Swap with another weak pointer.
|
| |
| auto | expired () const noexcept -> bool |
| | Test if this weak pointer is expired. More...
|
| |
| auto | lock () const noexcept -> cycle_gptr< T > |
| | Retrieve cycle_gptr from this. More...
|
| |
| template<typename U > |
| auto | owner_before (const cycle_weak_ptr< U > &other) const noexcept -> bool |
| | Ownership ordering. More...
|
| |
| template<typename U > |
| auto | owner_before (const cycle_gptr< U > &other) const noexcept -> bool |
| | Ownership ordering. More...
|
| |
| template<typename U > |
| auto | owner_before (const cycle_member_ptr< U > &other) const noexcept -> bool |
| | Ownership ordering. More...
|
| |
template<typename T>
class cycle_ptr::cycle_weak_ptr< T >
Weak cycle pointer.
A weak pointer does not have ownership of its target, depending on cycle_member_ptr and cycle_gptr keeping its target reachable.