std::unique_ptr<T,Deleter>::operator*
typename std::add_lvalue_reference<T>::type operator*() const;
| (1) | (since C++11) |
pointer operator->() const noexcept;
| (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*
Example
#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) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
http://en.cppreference.com/w/cpp/memory/unique_ptr/operator_star_