std::experimental::shared_ptr
| Technical Specification | ||||
| Filesystem library (filesystem TS) | ||||
| Library fundamentals (library fundamentals TS) | ||||
| Library fundamentals 2 (library fundamentals TS v2) | ||||
| Library fundamentals 3 (library fundamentals TS v3) | ||||
| Extensions for parallelism (parallelism TS) | ||||
| Extensions for parallelism 2 (parallelism TS v2) | ||||
| Extensions for concurrency (concurrency TS) | ||||
| Extensions for concurrency 2 (concurrency TS v2) | ||||
| Concepts (concepts TS) | ||||
| Ranges (ranges TS) | ||||
| Reflection (reflection TS) | ||||
| Mathematical special functions (special functions TR) | ||||
| Experimental Non-TS | ||||
| Pattern Matching | ||||
| Linear Algebra | ||||
| std::execution | ||||
| Contracts | ||||
| 2D Graphics |
experimental::shared_ptr | ||||
| Type-erased and polymorphic allocators | ||||
| Variable templates for type traits |
| Member functions | ||||
| Non-member functions | ||||
Members and non-members identical to those of std::shared_ptr |
| Defined in header <experimental/memory>
|
||
| 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.
Contents |
[edit] Member types
| Member type | Definition |
| element_type | std::remove_extent_t<T> |
[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
| applies static_cast, dynamic_cast, const_cast, or reinterpret_cast to the stored pointer (function template) [edit] |
[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_ptrs 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]
| |
| (until C++20) |
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] | |
| (C++11) |
specializes the std::swap algorithm (function template) [edit] |
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.
| (C++11) |
provides mixed-type owner-based ordering of shared and weak pointers (class template) [edit] |
| (C++11) |
allows an object to create a shared_ptr referring to itself (class template) [edit] |
[edit] Example
| This section is incomplete Reason: no example |