# deduction guides for `std::optional`

From cppreference.com
< cpp‎ | utility‎ | optional

Defined in header `<optional>` |  |
template< class T > optional(T) -> optional<T>; |  | (since C++17)

One deduction guide is provided for std::optional to account for the edge cases missed by the implicit deduction guides, in particular, non-copyable arguments and array to pointer conversion.

### Example

Run this code

    #include <optional>
    #include <type_traits>

    int main()
    {
        int a[2];
        std::optional oa{a}; // uses explicit deduction guide
        static_assert(std::is_same_v<decltype(oa), std::optional<int*>> == true);
    }

Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/utility/optional/deduction_guides&oldid=156653"