home | help
deductiongu...::shared_ptr(3)  C++ Standard Libary deductiongu...::shared_ptr(3)

NAME
     deductionguidesforstd::shared_ptr - deductionguidesforstd::shared_ptr

Synopsis
	Defined in header <memory>
	template< class T >				      (1) (since C++17)
	shared_ptr( std::weak_ptr<T> ) -> shared_ptr<T>;
	template< class T, class D >			      (2) (since C++17)
	shared_ptr( std::unique_ptr<T, D> ) -> shared_ptr<T>;

	These  deduction  guides are provided for std::shared_ptr to account for
     the edge
	cases missed by the implicit deduction guides.

	Note that there is no class template  argument	deduction  from  pointer
     types because
	it is impossible to distinguish pointers obtained from array and non-ar-
     ray forms of
	new.

Example
     // Run this code

      #include <memory>

      int main()
      {
	  auto p = std::make_shared<int>(42);
	  std::weak_ptr  w{p};	   //  explicit  deduction guide is used in this
     case
	  std::shared_ptr p2{w}; // explicit deduction guide  is  used	in  this
     case
      }

http://cppreference.com 	   2024.06.10	   deductiongu...::shared_ptr(3)

home | help