FastLED 3.9.15
Loading...
Searching...
No Matches
fl::shared_ptr< T > Class Template Reference

Detailed Description

template<typename T>
class fl::shared_ptr< T >

Definition at line 106 of file shared_ptr.h.

#include <shared_ptr.h>

+ Inheritance diagram for fl::shared_ptr< T >:
+ Collaboration diagram for fl::shared_ptr< T >:

Public Types

using element_type = T
 
using weak_type = weak_ptr<T>
 

Public Member Functions

 shared_ptr () noexcept
 
 shared_ptr (const shared_ptr &other)
 
template<typename Y>
 shared_ptr (const shared_ptr< Y > &other)
 
template<typename Y>
 shared_ptr (const weak_ptr< Y > &weak)
 
 shared_ptr (fl::nullptr_t) noexcept
 
 shared_ptr (shared_ptr &&other) noexcept
 
template<typename Y>
 shared_ptr (shared_ptr< Y > &&other) noexcept
 
 ~shared_ptr ()
 
T * get () const noexcept
 
bool is_no_tracking () const noexcept
 
 operator bool () const noexcept
 
bool operator!= (fl::nullptr_t) const noexcept
 
T & operator* () const noexcept
 
T * operator-> () const noexcept
 
shared_ptroperator= (const shared_ptr &other)
 
template<typename Y>
shared_ptroperator= (const shared_ptr< Y > &other)
 
shared_ptroperator= (shared_ptr &&other) noexcept
 
template<typename Y>
shared_ptroperator= (shared_ptr< Y > &&other) noexcept
 
bool operator== (fl::nullptr_t) const noexcept
 
T & operator[] (ptrdiff_t idx) const
 
void reset () noexcept
 
void reset (shared_ptr &&other) noexcept
 
void swap (shared_ptr &&other) noexcept
 
void swap (shared_ptr &other) noexcept
 
bool unique () const noexcept
 
long use_count () const noexcept
 

Private Member Functions

 shared_ptr (T *ptr, detail::ControlBlockBase *control_block, detail::make_shared_tag)
 
 shared_ptr (T *ptr, detail::ControlBlockBase *control_block, detail::no_tracking_tag)
 
template<typename Y>
 shared_ptr (Y *ptr)
 
template<typename Y, typename Deleter>
 shared_ptr (Y *ptr, Deleter d)
 
void acquire ()
 

Private Attributes

detail::ControlBlockBasecontrol_block_
 
T * ptr_
 

Friends

template<typename Y>
class shared_ptr
 
template<typename Y, typename A, typename... Args>
shared_ptr< Y > allocate_shared (const A &alloc, Args &&... args)
 
template<typename Y, typename... Args>
shared_ptr< Y > make_shared (Args &&... args)
 
template<typename Y>
shared_ptr< Y > make_shared_no_tracking (Y &obj)
 
template<typename Y, typename Deleter, typename... Args>
shared_ptr< Y > make_shared_with_deleter (Deleter d, Args &&... args)
 
template<typename Y>
class weak_ptr
 

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