![]() |
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.
|
friend |
Definition at line 370 of file UniqueTrackablePtr.h.
|
friend |
Definition at line 346 of file UniqueTrackablePtr.h.
|
friend |
|
friend |
Definition at line 354 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.