std::experimental::observer_ptr(3) | C++ Standard Libary | std::experimental::observer_ptr(3) |
NAME¶
std::experimental::observer_ptr - std::experimental::observer_ptr
Synopsis¶
Defined in header <experimental/memory>
template< class W > (library fundamentals TS v2)
class observer_ptr;
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.
Member types¶
Member type Definition
element_type W, the type of the object watched by this observer_ptr
Member functions¶
constructor constructs a new observer_ptr
(public member function)
destructor destructs an observer_ptr
(implicitly declared) (public member function)
operator= implicitly declared copy and move assignment operators that
(implicitly declared) assign the stored pointer
(public member function)
Modifiers¶
returns a pointer to the watched object and stops watching
release the object
(public member function)
reset replaces the watched object
(public member function)
swap swaps the watched objects
(public member function)
Observers¶
get returns a pointer to the watched object
(public member function)
operator bool checks if there is an associated watched object
(public member function)
operator* dereferences pointer to the watched object
operator-> (public member function)
Conversions¶
operator element_type* explicit conversion function to the stored
pointer
(public member function)
Non-member functions¶
creates an observer_ptr
make_observer that watches an object
(function template)
operator==
operator!= compares to another
operator< observer_ptr or with
operator<= nullptr
operator> (function template)
operator>=
specializes the swap
std::experimental::swap(std::experimental::observer_ptr) algorithm
(function template)
Helper classes¶
std::hash<std::experimental::observer_ptr> hash support for
observer_ptr
(class template specialization)
Example¶
This section is incomplete
Reason: no example
Category:¶
* Todo no example
2024.06.10 | http://cppreference.com |