Namespaces
Variants

Deduktionshilfen für std::optional

From de.cppreference.net
 
 
Werkzeugbibliothek
Sprachunterstützung
Typunterstützung (Basistypen, RTTI)
Bibliotheks-Feature-Test-Makros (C++20)
Programmwerkzeuge
Variadische Funktionen
Koroutinen-Unterstützung (C++20)
Vertragsunterstützung (C++26)
Dreiseitiger Vergleich
(C++20)
(C++20)(C++20)(C++20)    
(C++20)(C++20)(C++20)

Allgemeine Werkzeuge
Relationale Operatoren (veraltet in C++20)
Ganzzahl-Vergleichsfunktionen
(C++20)(C++20)(C++20)    
(C++20)
Tausch und Typ-Operationen
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
Allgemeine Vokabular-Typen
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)



 
 
Definiert in Header <optional>
template< class T >
optional(T) -> optional<T>;
(seit C++17)

Eine Deduktionshilfe wird für std::optional bereitgestellt, um die Grenzfälle zu berücksichtigen, die von den impliziten Deduktionshilfen übersehen werden, insbesondere nicht kopierbare Argumente und Array-zu-Zeiger-Konvertierung.

Beispiel

#include <optional>
#include <type_traits>
int main()
{
    int a[2];
    std::optional oa{a}; // verwendet expliziten Deduction Guide
    static_assert(std::is_same_v<decltype(oa), std::optional<int*>> == true);
}