std::experimental::observer_ptr
From cppreference.com
< cpp | experimental
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.
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
|
pointer | std::add_pointer_t<W>. For exposition only. |
[edit] Member functions
constructs a new observer_ptr (public member function) |
|
(destructor)
(implicitly declared)
|
destructs an observer_ptr (public member function) |
operator=
(implicitly declared)
|
implicitly declared copy and move assignment operators that assign the stored pointer (public member function) |
Modifiers |
|
returns a pointer to the watched object and stops watching the object (public member function) |
|
replaces the watched object (public member function) |
|
swaps the watched objects (public member function) |
|
Observers |
|
returns a pointer to the watched object (public member function) |
|
checks if there is an associated watched object (public member function) |
|
dereferences pointer to the watched object (public member function) |
|
Conversions |
|
explicit conversion function to the stored pointer (public member function) |
[edit] Non-member functions
creates a observer_ptr that watches an object (function template) |
|
compares to another observer_ptr or with nullptr (function template) |
|
specializes the swap algorithm (function template) |
[edit] Helper classes
hash support for observer_ptr (class template specialization) |
[edit] Example
This section is incomplete Reason: no example |