std::experimental::observer_ptr
From cppreference.com
< cpp | experimental
C++
Experimental
| 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 |
Library fundamentals v2
experimental::observer_ptr | ||||
std::experimental::observer_ptr
| Member functions | ||||
| Modifiers | ||||
| Observers | ||||
| Conversions | ||||
| Non-member functions | ||||
| Defined in header <experimental/memory>
|
||
| template< class W > class observer_ptr; |
(library fundamentals TS v2) | |
std::experimental::observer_ptr is a non-owning pointer, or observer. The observer stores a pointer to a second object, known as the watched object. An observer_ptr may also have no watched object.
An observer is not responsible in any way for the watched object; there is no inherent relationship between an observer and the object it watches.
It is intended as a near drop-in replacement for raw pointer types, with the advantage that, as a vocabulary type, it indicates its intended use without need for detailed analysis by code readers.
Specializations of observer_ptr satisfy the requirements of CopyConstructible and CopyAssignable.
| Type requirements | ||
-W shall not be a reference type, but may be an incomplete type.
|
Contents |
[edit] Member types
| Member type | Definition |
| element_type | W, the type of the object watched by this observer_ptr
|
[edit] Member functions
constructs a new observer_ptr (public member function) [edit] | |
| (destructor) (implicitly declared) |
destructs an observer_ptr (public member function) [edit] |
| operator= (implicitly declared) |
implicitly declared copy and move assignment operators that assign the stored pointer (public member function) [edit] |
Modifiers | |
| returns a pointer to the watched object and stops watching the object (public member function) [edit] | |
| replaces the watched object (public member function) [edit] | |
| swaps the watched objects (public member function) [edit] | |
Observers | |
| returns a pointer to the watched object (public member function) [edit] | |
| checks if there is an associated watched object (public member function) [edit] | |
| dereferences pointer to the watched object (public member function) [edit] | |
Conversions | |
| explicit conversion function to the stored pointer (public member function) [edit] | |
[edit] Non-member functions
creates an observer_ptr that watches an object (function template) [edit] | |
compares to another observer_ptr or with nullptr (function template) [edit] | |
specializes the swap algorithm (function template) [edit] |
[edit] Helper classes
hash support for observer_ptr (class template specialization) [edit] |
[edit] Example
| This section is incomplete Reason: no example |