deduction guides for std::shared_ptr
Min standard notice:
Header: <memory>
These deduction guides are provided for std::shared_ptr to account for the edge cases missed by the implicit deduction guides.
# Declarations
template< class T >
shared_ptr( std::weak_ptr<T> ) -> shared_ptr<T>;
(since C++17)
template< class T, class D >
shared_ptr( std::unique_ptr<T, D> ) -> shared_ptr<T>;
(since C++17)
# Example
#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
}