Namespaces
Variants

deduction guides for std::optional

From cppreference.net
Utilities library
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 tener en cuenta los casos límite que las guías de deducción implícitas no contemplan, en particular, argumentos no copiables y la conversión de array 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);
}