std::experimental::shared_ptr
template<class T >class shared_ptr; | | (library fundamentals TS) |
| | |
std::experimental::shared_ptr
is a modified version of std::shared_ptr that adds support for arrays.
[edit]Member types
[edit]Member functions
| constructs new shared_ptr (public member function)[edit] |
Observers |
| returns the stored pointer (public member function)[edit] |
| dereferences the stored pointer (public member function)[edit] |
| provides index access to the array (public member function)[edit] |
[edit]Non-member functions
[edit]Helper classes
| hash support for std::experimental::shared_ptr (class template specialization)[edit] |
Members and non-members identical to std::shared_ptr
Member functions
The following member functions work with std::experimental::shared_ptr instead of std::shared_ptr and std::experimental::weak_ptr instead of std::weak_ptr. The behavior is otherwise identical.
| destructs the owned object if no more shared_ptr s link to it (public member function of std::shared_ptr<T> )[edit] |
| assigns the shared_ptr (public member function of std::shared_ptr<T> )[edit] |
Modifiers |
| replaces the managed object (public member function of std::shared_ptr<T> )[edit] |
| swaps the managed objects (public member function of std::shared_ptr<T> )[edit] |
Observers |
| returns the number of shared_ptr objects referring to the same managed object (public member function of std::shared_ptr<T> )[edit] |
| checks whether the managed object is managed only by the current shared_ptr object (public member function of std::shared_ptr<T> )[edit] |
| checks if the stored pointer is not null (public member function of std::shared_ptr<T> )[edit] |
| provides owner-based ordering of shared pointers (public member function of std::shared_ptr<T> )[edit] |
Non-member functions
These non-member functions are declared in the std::experimental
namespace, and work with std::experimental::shared_ptr
rather than std::shared_ptr, but otherwise behaves identically to the corresponding C++14 function.
| creates a shared pointer that manages a new object (function template)[edit] |
| creates a shared pointer that manages a new object allocated using an allocator (function template)[edit] |
| returns the deleter of specified type, if owned (function template)[edit] |
(removed in C++20)(removed in C++20)(removed in C++20)(removed in C++20)(removed in C++20)(C++20) | compares with another shared_ptr or with nullptr (function template)[edit] |
| outputs the value of the stored pointer to an output stream (function template)[edit] |
| specializes the std::swap algorithm (function template)[edit] |
(deprecated in C++20)(removed in C++26) | specializes atomic operations for std::shared_ptr (function template)[edit] |
Helper class templates
These class templates are declared in the std::experimental
namespace, and work with std::experimental::shared_ptr
and std::experimental::weak_ptr rather than std::shared_ptr and std::weak_ptr, but otherwise behaves identically to the corresponding C++14 class template.
| provides mixed-type owner-based ordering of shared and weak pointers (class template)[edit] |
| allows an object to create a shared_ptr referring to itself (class template)[edit] |
[edit]Example