Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      deduction guides forstd::shared_ptr

      From cppreference.com
      <cpp‎ |memory‎ |shared ptr
       
       
      Memory management library
      (exposition only*)
      Allocators
      Uninitialized memory algorithms
      Constrained uninitialized memory algorithms
      Memory resources
      Uninitialized storage(until C++20)
      (until C++20*)
      (until C++20*)
      Garbage collector support(until C++23)
      (C++11)(until C++23)
      (C++11)(until C++23)
      (C++11)(until C++23)
      (C++11)(until C++23)
      (C++11)(until C++23)
      (C++11)(until C++23)
       
      std::shared_ptr
      Member functions
      Modifiers
      Observers
      (until C++20*)
      Non-member functions
      (until C++20)(until C++20)(until C++20)(until C++20)(until C++20)(C++20)
      functions(until C++26*)
      Helper classes
      Deduction guides(C++17)
       
      Defined in header<memory>
      template<class T>
      shared_ptr(std::weak_ptr<T>)-> shared_ptr<T>;
      (1)(since C++17)
      template<class T,class D>
      shared_ptr(std::unique_ptr<T, D>)-> shared_ptr<T>;
      (2)(since C++17)

      Thesededuction guides are provided forstd::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-array forms ofnew.

      [edit]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 casestd::shared_ptr p2{w};// explicit deduction guide is used in this case}
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/memory/shared_ptr/deduction_guides&oldid=148231"

      [8]ページ先頭

      ©2009-2025 Movatter.jp