![]() |
TrinityCore
|
Specialized variant of std::shared_ptr that enforces unique ownership and/or std::unique_ptr with std::weak_ptr capabilities Implementation has the same overhead as a std::shared_ptr, that is, a separate allocation for control block that holds use counters. More...
#include <UniqueTrackablePtr.h>
Public Types | |
| using | element_type = T |
| using | pointer = T * |
Public Member Functions | |
| unique_trackable_ptr () | |
| unique_trackable_ptr (pointer ptr) | |
| template<typename Deleter , std::enable_if_t< std::conjunction_v< std::is_move_constructible< Deleter >, std::is_invocable< Deleter &, T *& > >, int > = 0> | |
| unique_trackable_ptr (pointer ptr, Deleter deleter) | |
| unique_trackable_ptr (unique_trackable_ptr const &)=delete | |
| unique_trackable_ptr (unique_trackable_ptr &&other) noexcept | |
| template<typename T2 , std::enable_if_t< std::is_convertible_v< T2 *, T * >, int > = 0> | |
| unique_trackable_ptr (unique_trackable_ptr< T2 > &&other) noexcept | |
| unique_trackable_ptr & | operator= (unique_trackable_ptr const &)=delete |
| unique_trackable_ptr & | operator= (unique_trackable_ptr &&other) noexcept |
| template<typename T2 , std::enable_if_t< std::is_convertible_v< T2 *, T * >, int > = 0> | |
| unique_trackable_ptr & | operator= (unique_trackable_ptr< T2 > &&other) noexcept |
| ~unique_trackable_ptr ()=default | |
| unique_trackable_ptr & | operator= (std::nullptr_t) |
| void | swap (unique_trackable_ptr &other) noexcept |
| element_type & | operator* () const |
| pointer | operator-> () const |
| pointer | get () const |
| operator bool () const | |
| void | reset () |
| void | reset (pointer ptr) |
| template<class Deleter , std::enable_if_t< std::conjunction_v< std::is_move_constructible< Deleter >, std::is_invocable< Deleter &, T *& > >, int > = 0> | |
| void | reset (pointer ptr, Deleter deleter) |
Private Attributes | |
| std::shared_ptr< element_type > | _ptr |
Friends | |
| template<typename T0 > | |
| class | unique_trackable_ptr |
| template<typename T0 > | |
| class | unique_weak_ptr |
| template<typename T0 , typename... Args> | |
| std::enable_if_t<!std::is_array_v< T0 >, unique_trackable_ptr< T0 > > | make_unique_trackable (Args &&... args) |
| template<typename T0 > | |
| std::enable_if_t< std::is_unbounded_array_v< T0 >, unique_trackable_ptr< T0 > > | make_unique_trackable (std::size_t N) |
| template<typename T0 > | |
| std::enable_if_t< std::is_unbounded_array_v< T0 >, unique_trackable_ptr< T0 > > | make_unique_trackable (std::size_t N, std::remove_extent_t< T0 > const &val) |
| template<typename T0 > | |
| std::enable_if_t< std::is_bounded_array_v< T0 >, unique_trackable_ptr< T0 > > | make_unique_trackable () |
| template<typename T0 > | |
| std::enable_if_t< std::is_bounded_array_v< T0 >, unique_trackable_ptr< T0 > > | make_unique_trackable (std::remove_extent_t< T0 > const &val) |
Specialized variant of std::shared_ptr that enforces unique ownership and/or std::unique_ptr with std::weak_ptr capabilities Implementation has the same overhead as a std::shared_ptr, that is, a separate allocation for control block that holds use counters.
| T | Type of held object |
Definition at line 40 of file UniqueTrackablePtr.h.
| using Trinity::unique_trackable_ptr< T >::element_type = T |
Definition at line 43 of file UniqueTrackablePtr.h.
| using Trinity::unique_trackable_ptr< T >::pointer = T* |
Definition at line 44 of file UniqueTrackablePtr.h.
|
inline |
Definition at line 46 of file UniqueTrackablePtr.h.
|
inlineexplicit |
Definition at line 48 of file UniqueTrackablePtr.h.
|
inlineexplicit |
Definition at line 52 of file UniqueTrackablePtr.h.
|
delete |
|
inlinenoexcept |
Definition at line 57 of file UniqueTrackablePtr.h.
|
inlinenoexcept |
Definition at line 61 of file UniqueTrackablePtr.h.
|
default |
|
inline |
|
inlineexplicit |
Definition at line 108 of file UniqueTrackablePtr.h.
|
inline |
Definition at line 93 of file UniqueTrackablePtr.h.
|
inline |
Definition at line 98 of file UniqueTrackablePtr.h.
|
inline |
|
inlinenoexcept |
Definition at line 66 of file UniqueTrackablePtr.h.
|
delete |
|
inlinenoexcept |
Definition at line 73 of file UniqueTrackablePtr.h.
|
inline |
|
inline |
Definition at line 118 of file UniqueTrackablePtr.h.
|
inline |
Definition at line 124 of file UniqueTrackablePtr.h.
|
inlinenoexcept |
Definition at line 87 of file UniqueTrackablePtr.h.
Here is the call graph for this function:
Here is the caller graph for this function:
|
friend |
Definition at line 384 of file UniqueTrackablePtr.h.
|
friend |
Definition at line 360 of file UniqueTrackablePtr.h.
|
friend |
|
friend |
Definition at line 368 of file UniqueTrackablePtr.h.
|
friend |
Definition at line 131 of file UniqueTrackablePtr.h.
Definition at line 134 of file UniqueTrackablePtr.h.
|
private |
Definition at line 151 of file UniqueTrackablePtr.h.