Namespaces
Variants

guías de deducción para std::optional

From es.cppreference.net
 
 
Biblioteca de utilidades
Soporte de lenguaje
Soporte de tipos (tipos básicos, RTTI)
Macros de prueba de características de biblioteca (C++20)
Utilidades de programa
Funciones variádicas
Soporte de corrutinas (C++20)
Soporte de contratos (C++26)
Comparación de tres vías
(C++20)
(C++20)(C++20)(C++20)    
(C++20)(C++20)(C++20)

Utilidades generales
Operadores relacionales (obsoleto en C++20)
 
 
Definido en el encabezado <optional>
template< class T >
optional(T) -> optional<T>;
(desde C++17)

Se proporciona una guía de deducción para std::optional para cubrir los casos límite que omiten las guías de deducción implícitas, en particular, argumentos no copiables y conversión de arreglo a puntero.

Ejemplo

#include <optional>
#include <type_traits>
int main()
{
    int a[2];
    std::optional oa{a}; // utiliza la guía de deducción explícita
    static_assert(std::is_same_v<decltype(oa), std::optional<int*>> == true);
}