|
template<typename E , typename... Args> |
CPP_TEMPLATE_AUX_0 | c (requires constructible_from< T, std::initializer_list< E > &, Args... >) ccconstexpr explicit optional(in_place_t |
|
template<typename U > |
CPP_TEMPLATE_AUX_0 | c (requires copy_constructible< T > &&convertible_to< U, T >) ccconstexpr T value_or(U &&u) const & |
|
template<typename U > |
CPP_TEMPLATE_AUX_0 | c (requires move_constructible< T > &&convertible_to< U, T >) ccconstexpr T value_or(U &&u) && |
|
template<typename U = T> |
CPP_TEMPLATE_AUX_0 | c (requires(!same_as< detail::decay_t< U >, in_place_t >) &&(!same_as< detail::decay_t< U >, optional >) &&constructible_from< T, U > &&(!convertible_to< U, T >)) ccconstexpr explicit optional(U &&v) |
|
template<typename U = T> |
CPP_TEMPLATE_AUX_0 | c (requires(!same_as< detail::decay_t< U >, in_place_t >) &&(!same_as< detail::decay_t< U >, optional >) &&constructible_from< T, U > &&convertible_to< U, T >) ccconstexpr optional(U &&v) |
|
template<typename U = T> |
CPP_TEMPLATE_AUX_0 | c (requires(!same_as< optional, detail::decay_t< U >>) &&(!(satisfies< T, std::is_scalar > &&same_as< T, detail::decay_t< U >>)) &&constructible_from< T, U > &&assignable_from< T &, U >) ccconstexpr optional &operator |
|
template<typename U > |
| CPP_TEMPLATE_AUX_0 (requires optional_should_convert< U, T > &&constructible_from< T, U > &&(!convertible_to< U, T >)) explicit optional(optional< U > &&that) |
|
template<typename U > |
CPP_TEMPLATE_AUX_0 | e (requires optional_should_convert< U, T > &&constructible_from< T, U const & > &&(!convertible_to< U const &, T >)) eeexplicit optional(optional< U > const &that) |
|
CPP_TEMPLATE_AUX_0 std::initializer_list< E > Args &&args | noexcept (std::is_nothrow_constructible< T, std::initializer_list< E > &, Args... >::value) |
|
template<typename U > |
CPP_TEMPLATE_AUX_0 | o (requires optional_should_convert< U, T > &&constructible_from< T, U > &&convertible_to< U, T >) oooptional(optional< U > &&that) |
|
template<typename U > |
CPP_TEMPLATE_AUX_0 | o (requires optional_should_convert< U, T > &&constructible_from< T, U const & > &&convertible_to< U const &, T >) oooptional(optional< U > const &that) |
|
constexpr | operator bool () const noexcept |
|
constexpr optional & | operator= (nullopt_t) noexcept |
|
optional & | operator= (optional &&)=default |
|
optional & | operator= (optional const &)=default |
|
constexpr | optional (nullopt_t) noexcept |
|
| optional (optional &&)=default |
|
| optional (optional const &)=default |
|
constexpr T & | value () & |
|
constexpr T && | value () && |
|
constexpr T const & | value () const & |
|
constexpr T const && | value () const && |
|