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/w/cpp/memory/shared_ptr/deduction_guides

Spec-Zone.ru

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