std::unique_ptr::operator*
From cppreference.com
< cpp | memory | unique ptr
typename std::add_lvalue_reference<T>::type operator*() const; |
(1) | (since C++11) |
pointer operator->() const; |
(2) | (since C++11) |
operator*
and operator->
provide access to the object owned by *this.
The behavior is undefined if get() == nullptr
Parameters
(none)
Return value
1) Returns the object owned by *this, equivalent to *get().
2) Returns a pointer to the object owned by *this, i.e. get().
Exceptions
1) may throw, e.g. if pointer
defines a throwing operator*
noexcept specification:
noexcept
Example
Run this code
#include <iostream> #include <memory> struct Foo { void bar() { std::cout << "Foo::bar\n"; } }; void f(const Foo& foo) { std::cout << "f(const Foo&)\n"; } int main() { std::unique_ptr<Foo> ptr(new Foo); ptr->bar(); f(*ptr); }
Output:
Foo::bar f(const Foo&)
See also
returns a pointer to the managed object (public member function) |