table of contents
std::shared_ptr::operator*,std::shared_ptr::operator->(3) | C++ Standard Libary | std::shared_ptr::operator*,std::shared_ptr::operator->(3) |
NAME¶
std::shared_ptr::operator*,std::shared_ptr::operator-> - std::shared_ptr::operator*,std::shared_ptr::operator->
Synopsis¶
T& operator*() const noexcept; (1) (since
C++11)
T* operator->() const noexcept; (2) (since C++11)
Dereferences the stored pointer. The behavior is undefined if the stored
pointer is
null.
Parameters¶
(none)
Return value¶
1) The result of dereferencing the stored pointer, i.e., *get()
2) The stored pointer, i.e., get()
Remarks
When T is a (possibly cv-qualified) void, it is unspecified whether function
(1) is
declared.
When T is an array type, it is unspecified whether these member
functions are declared, and if they are, what their return type is, (since
C++17)
except that the declaration (not necessarily the definition) of these
functions is well-formed.
If either function is declared despite being unspecified, it is unspecified
what its
return type is, except that the declaration (although not necessarily the
definition) of the function is guaranteed to be legal. This makes it possible
to
instantiate std::shared_ptr<void>.
Example¶
// Run this code
#include <iostream>
#include <memory>
struct Foo
{
Foo(int in) : a(in) {}
void print() const
{
std::cout << "a = " << a << '\n';
}
int a;
};
int main()
{
auto ptr = std::make_shared<Foo>(10);
ptr->print();
(*ptr).print();
}
Output:¶
a = 10
a = 10
See also¶
get returns the stored pointer
(public member function)
2022.07.31 | http://cppreference.com |