Create an optional object whose contained value is initialized by forwarding from the specified value. Use the currently installed default allocator to supply memory. Note that this constructor participates in overload resolution only when t_TYPE is constructible from t_ANY_TYPE and is explicit only when t_ANY_TYPE is not implicitly convertible to t_TYPE. This constructor can be called in constant expressions only when t_TYPE is not allocator-aware.
Declared in <bslstl_optional.h>
template<class t_ANY_TYPE = t_TYPE>
constexpr
explicit
optional(t_ANY_TYPE&& value);