Namespaces
Variants

deduction guides for std::optional

From cppreference.net
Utilities library
Определено в заголовке <optional>
template < class T >
optional ( T ) - > optional < T > ;
(начиная с C++17)

Один deduction guide предоставляется для std::optional для учёта крайних случаев, пропущенных неявными deduction guides, в частности, некопируемых аргументов и преобразования массива в указатель.

Пример

#include <optional>
#include <type_traits>
int main()
{
    int a[2];
    std::optional oa{a}; // использует явный направляющий вывод
    static_assert(std::is_same_v<decltype(oa), std::optional<int*>> == true);
}