Namensräume
Varianten
Aktionen

deduction guides for std::shared_ptr

Von cppreference.com
< cpp‎ | memory‎ | shared ptr
 
 
Speicherverwaltungsbibliothek
(nur Exposition*)
Algorithmen für uninitialisierten Speicher
(C++17)
(C++17)
(C++17)
Beschränkte uninitialisierte
Speicher-Algorithmen
C-Bibliothek

Allocatoren
Speicherressourcen
Unterstützung für Garbage Collection
(C++11)(bis C++23)
(C++11)(bis C++23)
(C++11)(bis C++23)
(C++11)(bis C++23)
(C++11)(bis C++23)
(C++11)(bis C++23)
Uninitialisierter Speicher
Explizites Lebenszeitmanagement
 
 
Definiert in Header <memory>
template< class T >
shared_ptr( std::weak_ptr<T> ) -> shared_ptr<T>;
(1) (seit C++17)
template< class T, class D >
shared_ptr( std::unique_ptr<T, D> ) -> shared_ptr<T>;
(2) (seit C++17)

Diese deduction guides werden für std::shared_ptr bereitgestellt, um die Randfälle zu berücksichtigen, die von den impliziten deduction guides übersehen werden.

Beachten Sie, dass es keine Klassen-Template-Argument-Deduction für Zeigertypen gibt, da es unmöglich ist, Zeiger zu unterscheiden, die aus Array- und Nicht-Array-Formen von new gewonnen wurden.

[bearbeiten] Beispiel

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