Scroll to navigation

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 a observer_ptr that
make_observer 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

2022.07.31 http://cppreference.com