|
| control (Alloc alloc) |
| Create control block. More...
|
|
template<typename... Args> |
auto | instantiate (Args &&... args) -> T * |
| Instantiate the object managed by this control block. More...
|
|
auto | expired () const noexcept -> bool |
| Test if the object managed by this control is expired.
|
|
auto | weak_acquire () noexcept -> bool |
| Used by weak to strong reference promotion. More...
|
|
auto | acquire_no_red () noexcept -> void |
| Acquire reference. More...
|
|
auto | acquire () noexcept -> void |
| Acquire reference. More...
|
|
auto | release (bool skip_gc=false) noexcept -> void |
| Release reference counter. More...
|
|
auto | gc () noexcept -> void |
| Run GC.
|
|
auto | push_back (vertex &v) noexcept -> void |
| Register a vertex.
|
|
auto | erase (vertex &v) noexcept -> void |
| Deregister a vertex.
|
|
virtual auto | is_unowned () const noexcept -> bool |
| Test if this control block represents an unowned object.
|
|
constexpr | link () noexcept=default |
| Default constructor.
|
|
| ~link () noexcept |
| Destructor.
|
|
template<typename T, typename Alloc>
class cycle_ptr::detail::control< T, Alloc >
Control block implementation for given type and allocator combination.
Extends base_control, adding specifics for creating and destroying T
.
- Template Parameters
-
T | The type of object managed by this control block. |
Alloc | The allocator used to allocate storage for this control block. |