Spec-Zone.ru › C++

руководства по выводу типов для std::shared_ptr

Определено в заголовочном файле <memory>
template< class T >
shared_ptr( std::weak_ptr<T> ) -> shared_ptr<T>;
(1) (начиная с C++17)
template< class T, class D >
shared_ptr( std::unique_ptr<T, D> ) -> shared_ptr<T>;
(2) (начиная с C++17)

Эти руководства по выводу типов предоставляются для std::shared_ptr, чтобы учесть крайние случаи, не охваченные неявными руководствами по выводу типов.

Обратите внимание, что вывод аргументов шаблона класса из типов указателей невозможен, поскольку невозможно различить указатели, полученные из массивной и немассивной форм new.

Пример

#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
}

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/memory/shared_ptr/deduction_guides

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API