libstdc++
|
Public Types | |
using | value_type = _Tp |
Public Member Functions | |
constexpr | optional (nullopt_t) noexcept |
constexpr bool | has_value () const noexcept |
template<typename _Up = _Tp, _Requires< __not_self< _Up >, __not_tag< _Up >, is_constructible< _Tp, _Up >, is_convertible< _Up, _Tp >> = true> | |
constexpr | noexcept (is_nothrow_constructible_v< _Tp, _Up >) |
template<typename _Up = _Tp, _Requires< __not_self< _Up >, __not_tag< _Up >, is_constructible< _Tp, _Up >, __not_< is_convertible< _Up, _Tp >>> = false> | |
constexpr | noexcept (is_nothrow_constructible_v< _Tp, _Up >) |
template<typename _Up , _Requires< __not_< is_same< _Tp, _Up >>, is_constructible< _Tp, const _Up & >, is_convertible< const _Up &, _Tp >, __not_< __converts_from_optional< _Tp, _Up >>> = true> | |
constexpr | noexcept (is_nothrow_constructible_v< _Tp, const _Up & >) |
template<typename _Up , _Requires< __not_< is_same< _Tp, _Up >>, is_constructible< _Tp, const _Up & >, __not_< is_convertible< const _Up &, _Tp >>, __not_< __converts_from_optional< _Tp, _Up >>> = false> | |
constexpr | noexcept (is_nothrow_constructible_v< _Tp, const _Up & >) |
template<typename _Up , _Requires< __not_< is_same< _Tp, _Up >>, is_constructible< _Tp, _Up >, is_convertible< _Up, _Tp >, __not_< __converts_from_optional< _Tp, _Up >>> = true> | |
constexpr | noexcept (is_nothrow_constructible_v< _Tp, _Up >) |
template<typename _Up , _Requires< __not_< is_same< _Tp, _Up >>, is_constructible< _Tp, _Up >, __not_< is_convertible< _Up, _Tp >>, __not_< __converts_from_optional< _Tp, _Up >>> = false> | |
constexpr | noexcept (is_nothrow_constructible_v< _Tp, _Up >) |
template<typename... _Args, _Requires< is_constructible< _Tp, _Args...>> = false> | |
constexpr | noexcept (is_nothrow_constructible_v< _Tp, _Args...>) |
template<typename _Up , typename... _Args, _Requires< is_constructible< _Tp, initializer_list< _Up > &, _Args...>> = false> | |
constexpr | noexcept (is_nothrow_constructible_v< _Tp, initializer_list< _Up > &, _Args...>) |
template<typename... _Args> | |
enable_if_t < is_constructible_v< _Tp, _Args...>, _Tp & > | noexcept (is_nothrow_constructible_v< _Tp, _Args...>) |
template<typename _Up , typename... _Args> | |
enable_if_t < is_constructible_v< _Tp, initializer_list< _Up > &, _Args...>, _Tp & > | noexcept (is_nothrow_constructible_v< _Tp, initializer_list< _Up > &, _Args...>) |
void | noexcept (is_nothrow_move_constructible_v< _Tp > &&is_nothrow_swappable_v< _Tp >) |
constexpr | operator bool () const noexcept |
constexpr const _Tp & | operator* () const &noexcept |
constexpr _Tp & | operator* ()&noexcept |
constexpr _Tp && | operator* ()&&noexcept |
constexpr const _Tp && | operator* () const &&noexcept |
constexpr const _Tp * | operator-> () const noexcept |
constexpr _Tp * | operator-> () noexcept |
optional & | operator= (nullopt_t) noexcept |
template<typename _Up = _Tp> | |
enable_if_t< __and_v < __not_self< _Up >, __not_ < __and_< is_scalar< _Tp > , is_same< _Tp, decay_t< _Up > > > >, is_constructible< _Tp, _Up >, is_assignable< _Tp &, _Up > >, optional & > | operator= (_Up &&__u) noexcept(__and_v< is_nothrow_constructible< _Tp, _Up >, is_nothrow_assignable< _Tp &, _Up >>) |
template<typename _Up > | |
enable_if_t< __and_v< __not_ < is_same< _Tp, _Up > >, is_constructible< _Tp, const _Up & >, is_assignable < _Tp &, const _Up & >, __not_ < __converts_from_optional < _Tp, _Up > >, __not_ < __assigns_from_optional< _Tp, _Up > > >, optional & > | operator= (const optional< _Up > &__u) noexcept(__and_v< is_nothrow_constructible< _Tp, const _Up & >, is_nothrow_assignable< _Tp &, const _Up & >>) |
template<typename _Up > | |
enable_if_t< __and_v< __not_ < is_same< _Tp, _Up > >, is_constructible< _Tp, _Up > , is_assignable< _Tp &, _Up > , __not_ < __converts_from_optional < _Tp, _Up > >, __not_ < __assigns_from_optional< _Tp, _Up > > >, optional & > | operator= (optional< _Up > &&__u) noexcept(__and_v< is_nothrow_constructible< _Tp, _Up >, is_nothrow_assignable< _Tp &, _Up >>) |
void | reset () noexcept |
constexpr const _Tp & | value () const & |
constexpr _Tp & | value ()& |
constexpr _Tp && | value ()&& |
constexpr const _Tp && | value () const && |
template<typename _Up > | |
constexpr _Tp | value_or (_Up &&__u) const & |
template<typename _Up > | |
constexpr _Tp | value_or (_Up &&__u)&& |
Private Types | |
using | _Stored_type = remove_const_t< _Tp > |
Private Attributes | |
_Optional_payload< _Tp > | _M_payload |
Class template for optional values.