Namespaces
Variants
Views
Actions

std::shared_ptr::operator*, std::shared_ptr::operator->

From cppreference.com
< cpp‎ | memory‎ | shared ptr
 
 
 
 
 
T& operator*() const;
(1) (since C++11)
T* operator->() const;
(2) (since C++11)

Dereferences the stored pointer. The behavior is undefined if the stored pointer is null.

Contents

[edit] Parameters

(none)

[edit] Return value

1) The result of dereferencing the stored pointer, i.e., *get()
2) The stored pointer, i.e., get()

[edit] Exceptions

noexcept specification:  
noexcept
  

[edit] Notes

When element_type is void, it is unspecified whether function (1) is declared. If it is declared, 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>.

[edit] Example

#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

[edit] See also

returns the stored pointer
(public member function) [edit]