std::shared_ptr<T>::get (3) - Linux Man Pages

std::shared_ptr<T>::get: std::shared_ptr<T>::get

NAME

std::shared_ptr<T>::get - std::shared_ptr<T>::get

Synopsis


T* get() const noexcept; (until C++17)
element_type* get() const noexcept; (since C++17)


Returns the stored pointer.

Parameters


(none)

Return value


The stored pointer.

Notes


A shared_ptr may share ownership of an object while storing a pointer to another object. get() returns the stored pointer, not the managed pointer.

Example


// Run this code


  #include <iostream>
  #include <memory>
  #include <string_view>


  void output(std::string_view msg, int const* pInt)
  {
      std::cout << msg << *pInt << "\n";
  }


  int main()
  {
      int* pInt = new int(42);
      std::shared_ptr<int> pShared = std::make_shared<int>(42);


      output("Naked pointer ", pInt);
      // output("Shared pointer ", pShared); // compiler error
      output("Shared pointer with get() ", pShared.get());


      delete pInt;
  }

Output:


  Naked pointer 42
  Shared pointer with get() 42

See also


           dereferences the stored pointer
operator* (public member function)
operator->