std::experimental::shared_ptr - cppreference.com (original) (raw)
std::experimental::shared_ptr is a modified version of std::shared_ptr that adds support for arrays.
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.
| (destructor) | destructs the owned object if no more shared_ptrs link to it (public member function of std::shared_ptr) [edit] |
|---|---|
| operator= | assigns the shared_ptr (public member function of std::shared_ptr) [edit] |
| Modifiers | |
| reset | replaces the managed object (public member function of std::shared_ptr) [edit] |
| swap | swaps the managed objects (public member function of std::shared_ptr) [edit] |
| Observers | |
| use_count | returns the number of shared_ptr objects referring to the same managed object (public member function of std::shared_ptr) [edit] |
| unique(until C++20) | checks whether the managed object is managed only by the current shared_ptr object (public member function of std::shared_ptr) [edit] |
| operator bool | checks if the stored pointer is not null (public member function of std::shared_ptr) [edit] |
| owner_before | provides owner-based ordering of shared pointers (public member function of std::shared_ptr) [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.
| make_sharedmake_shared_for_overwrite(C++20) | creates a shared pointer that manages a new object (function template) [edit] |
|---|---|
| allocate_sharedallocate_shared_for_overwrite(C++20) | creates a shared pointer that manages a new object allocated using an allocator (function template) [edit] |
| get_deleter | returns the deleter of specified type, if owned (function template) [edit] |
| operator==operator!=operator<operator<=operator>operator>=operator<=>(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] |
| operator<<(std::shared_ptr) | outputs the value of the stored pointer to an output stream (function template) [edit] |
| std::swap(std::shared_ptr)(C++11) | specializes the std::swap algorithm (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] |