std::experimental::observer_ptr - cppreference.com (original) (raw)
std::experimental::observer_ptr
| | | | | ----------------------------------------- | | ---------------------------- | | 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
| (constructor) | 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 | |
| release | returns a pointer to the watched object and stops watching the object (public member function) [edit] |
| reset | replaces the watched object (public member function) [edit] |
| swap | swaps the watched objects (public member function) [edit] |
| Observers | |
| get | returns a pointer to the watched object (public member function) [edit] |
| operator bool | checks if there is an associated watched object (public member function) [edit] |
| operator*operator-> | dereferences pointer to the watched object (public member function) [edit] |
| Conversions | |
| operator element_type* | explicit conversion function to the stored pointer (public member function) [edit] |