std::shared_ptr

From Cppreference

Jump to: navigation, search
Defined in header <memory>

template< class T > class shared_ptr;
(since C++11)

std::shared_ptr is a smart pointer that manages lifetime of an object, typically allocated with new. Several shared_ptr objects may manage the same object; the object is destroyed when the last remaining shared_ptr pointing to it is destroyed or reset. The object is destroyed using delete-expression or a custom deleter that is supplied to shared_ptr during construction.

Contents

[edit] Member types

Member type Definition
element_type T

[edit] Member functions

constructs new shared_ptr
(public member function)
destructs the owned object if no more shared_ptrs link to it
(public member function)
assigns the shared_ptr
(public member function)
Modifiers
replaces the managed object
(public member function)
swaps the managed objects
(public member function)
Observers
returns a pointer to the managed object
(public member function)
dereferences pointer to the managed object
(public member function)
returns the number of shared_ptr objects referring to the same managed object
(public member function)
checks whether the managed object is managed only by the current shared_ptr instance
(public member function)
checks if there is associated managed object
(public member function)
provides owner-based ordering of shared pointers
(public member function)

[edit] Non-member functions

creates a shared pointer that manages a new object
(function template)
creates a shared pointer that manages a new object allocated using an allocator
(function template)
applies static_cast, dynamic_cast or const_cast to the type of the managed object
(function template)
returns the deleter of specified type, if owned
(function template)
compares with another shared_ptr or with nullptr
(function template)
outputs the value of the managed pointer to an output stream
(function template)
specializes the std::swap algorithm
(function template)
specializes atomic operations
(function template)

[edit] Helper classes

hash support for std::shared_ptr
(class template specialization)