|
| CPP_assert (destructible< T >) |
|
constexpr | optional (nullopt_t) noexcept |
|
| optional (optional const &)=default |
|
| optional (optional &&)=default |
|
| template (typename E, typename... Args)() const expr explicit optional(in_place_t |
|
std::initializer_list< E > Args &&args | noexcept (std::is_nothrow_constructible< T, std::initializer_list< E > &, Args... >::value) |
|
| template (typename U=T)(AND(!same_as< detail |
|
| template (typename U=T)(AND(!same_as< detail |
|
| template (typename U)(AND const ructible_from< T |
|
U const &AND convertible_to< U const &, T > | optional (optional< U > const &that) |
|
| template (typename U)(AND const ructible_from< T |
|
U const & | AND (!convertible_to< U const &, T >)) explicit optional(optional< U > const &that) |
|
| template (typename U)(AND const ructible_from< T |
|
U AND convertible_to< U, T > | optional (optional< U > &&that) |
|
| template (typename U)(AND const ructible_from< T |
|
U | AND (!convertible_to< U, T >)) explicit optional(optional< U > &&that) |
|
constexpr optional & | operator= (nullopt_t) noexcept |
|
optional & | operator= (optional const &)=default |
|
optional & | operator= (optional &&)=default |
|
| template (typename U=T)(AND(!(satisfies< T |
|
std::is_scalar &&same_as< T, detail::decay_t< U > > AND constructible_from< T, U > AND assignable_from< T &, U > constexpr optional & | operator= (U &&u) noexcept(std::is_nothrow_constructible< T, U >::value &&std::is_nothrow_assignable< T &, U >::value) |
|
| template (typename U)(AND const ructible_from< T |
|
const U &AND assignable_from< T &, const U & > constexpr optional & | operator= (optional< U > const &that) |
|
| template (typename U)(AND const ructible_from< T |
|
U AND assignable_from< T &, U > constexpr optional & | operator= (optional< U > &&that) |
|
| template (typename I)() T &emplace_deref(const I &it) |
|
| template (typename... Args)() T &emplace(Args &&... args) noexcept(std::is_nothrow_constructible< T, Args... >::value) |
|
| template (typename E, typename... Args)() T &emplace(std |
|
constexpr | operator bool () const noexcept |
|
constexpr T const & | value () const & |
|
constexpr T & | value () & |
|
constexpr T const && | value () const && |
|
constexpr T && | value () && |
|
| template (typename U)(AND convertible_to< U |
|
T constexpr T | value_or (U &&u) const & |
|
| template (typename U)(AND convertible_to< U |
|
T constexpr T | value_or (U &&u) && |
|