Namespaces
Variants

deduction guides for std::optional

From cppreference.net
Utilities library
Défini dans l'en-tête <optional>
template < class T >
optional ( T ) - > optional < T > ;
(depuis C++17)

Un guide de déduction est fourni pour std::optional pour prendre en compte les cas particuliers manqués par les guides de déduction implicites, en particulier, les arguments non copiables et la conversion de tableau en pointeur.

Exemple

#include <optional>
#include <type_traits>
int main()
{
    int a[2];
    std::optional oa{a}; // utilise le guide de déduction explicite
    static_assert(std::is_same_v<decltype(oa), std::optional<int*>> == true);
}