operator==, !=, <, <=, >, >=(std::experimental::optional)
From cppreference.com
| Defined in header <experimental/optional>
|
||
| Compare two optional objects |
||
template< class T >
constexpr bool operator==( const optional<T>& lhs, const optional<T>& rhs );
|
(1) | (library fundamentals TS) |
template< class T >
constexpr bool operator!=( const optional<T>& lhs, const optional<T>& rhs );
|
(2) | (library fundamentals TS) |
template< class T >
constexpr bool operator<( const optional<T>& lhs, const optional<T>& rhs );
|
(3) | (library fundamentals TS) |
template< class T >
constexpr bool operator<=( const optional<T>& lhs, const optional<T>& rhs );
|
(4) | (library fundamentals TS) |
template< class T >
constexpr bool operator>( const optional<T>& lhs, const optional<T>& rhs );
|
(5) | (library fundamentals TS) |
template< class T >
constexpr bool operator>=( const optional<T>& lhs, const optional<T>& rhs );
|
(6) | (library fundamentals TS) |
| Compare an optional object with a nullopt |
||
template< class T >
constexpr bool operator==( const optional<T>& opt, std::nullopt_t ) noexcept;
|
(7) | (library fundamentals TS) |
template< class T >
constexpr bool operator==( std::nullopt_t, const optional<T>& opt ) noexcept;
|
(8) | (library fundamentals TS) |
template< class T >
constexpr bool operator!=( const optional<T>& opt, std::nullopt_t ) noexcept;
|
(9) | (library fundamentals TS) |
template< class T >
constexpr bool operator!=( std::nullopt_t, const optional<T>& opt ) noexcept;
|
(10) | (library fundamentals TS) |
template< class T >
constexpr bool operator<( const optional<T>& opt, std::nullopt_t ) noexcept;
|
(11) | (library fundamentals TS) |
template< class T >
constexpr bool operator<( std::nullopt_t, const optional<T>& opt ) noexcept;
|
(12) | (library fundamentals TS) |
template< class T >
constexpr bool operator<=( const optional<T>& opt, std::nullopt_t ) noexcept;
|
(13) | (library fundamentals TS) |
template< class T >
constexpr bool operator<=( std::nullopt_t, const optional<T>& opt ) noexcept;
|
(14) | (library fundamentals TS) |
template< class T >
constexpr bool operator>( const optional<T>& opt, std::nullopt_t ) noexcept;
|
(15) | (library fundamentals TS) |
template< class T >
constexpr bool operator>( std::nullopt_t, const optional<T>& opt ) noexcept;
|
(16) | (library fundamentals TS) |
template< class T >
constexpr bool operator>=( const optional<T>& opt, std::nullopt_t ) noexcept;
|
(17) | (library fundamentals TS) |
template< class T >
constexpr bool operator>=( std::nullopt_t, const optional<T>& opt ) noexcept;
|
(18) | (library fundamentals TS) |
| Compare an optional object with a T |
||
template< class T >
constexpr bool operator==( const optional<T>& opt, const T& value );
|
(19) | (library fundamentals TS) |
template< class T >
constexpr bool operator==( const T& value, const optional<T>& opt );
|
(20) | (library fundamentals TS) |
template< class T >
constexpr bool operator!=( const optional<T>& opt, const T& value );
|
(21) | (library fundamentals TS) |
template< class T >
constexpr bool operator!=( const T& value, const optional<T>& opt );
|
(22) | (library fundamentals TS) |
template< class T >
constexpr bool operator<( const optional<T>& opt, const T& value );
|
(23) | (library fundamentals TS) |
template< class T >
constexpr bool operator<( const T& value, const optional<T>& opt );
|
(24) | (library fundamentals TS) |
template< class T >
constexpr bool operator<=( const optional<T>& opt, const T& value );
|
(25) | (library fundamentals TS) |
template< class T >
constexpr bool operator<=( const T& value, const optional<T>& opt );
|
(26) | (library fundamentals TS) |
template< class T >
constexpr bool operator>( const optional<T>& opt, const T& value );
|
(27) | (library fundamentals TS) |
template< class T >
constexpr bool operator>( const T& value, const optional<T>& opt );
|
(28) | (library fundamentals TS) |
template< class T >
constexpr bool operator>=( const optional<T>& opt, const T& value );
|
(29) | (library fundamentals TS) |
template< class T >
constexpr bool operator>=( const T& value, const optional<T>& opt );
|
(30) | (library fundamentals TS) |
Performs comparison operations on optional objects.
1-6) Compares two
optional objects, lhs and rhs. The contained values are compared (using operator== for (1,2) and operator< for (3-6)) only if both lhs and rhs contain values. Otherwise, lhsis considered equal torhsif, and only if, bothlhsandrhsdo not contain a value.lhsis considered less thanrhsif, and only if,rhscontains a value andlhsdoes not.
7-18) Compares
opt with a nullopt. Equivalent to (1-6) when comparing to an optional that does not contain a value.19-30) Compares
opt with a value. The values are compared (using operator== for (19-22) and operator< for (23-30)) only if opt contains a value. Otherwise, opt is considered less than value.Parameters
Return value
1) If
bool(lhs) != bool(rhs), returns false. Otherwise, if
bool(lhs) == false (and so bool(rhs) == false as well), returns true. Otherwise, returns
*lhs == *rhs.2) Returns
!(lhs == rhs).3) If
bool(rhs) == false returns false. Otherwise, if
bool(lhs) == false, returns true. Otherwise returns
*x < *y.4) Returns
!(rhs < lhs).5) Returns
rhs < lhs.6) Returns
!(lhs < rhs).7,8) Returns
!opt.9,10) Returns
bool(opt).11) Returns
false.12) Returns
bool(opt).13) Returns
!opt.14) Returns
true.15) Returns
bool(opt).16) Returns
false.17) Returns
true.18) Returns
!opt.19) Returns
bool(opt) ? *opt == value : false.20) Returns
bool(opt) ? value == *opt : false.21) Returns
bool(opt) ? !(*opt == value) : true.22) Returns
bool(opt) ? !(value == *opt) : true.23) Returns
bool(opt) ? *opt < value : true.24) Returns
bool(opt) ? value < *opt : false.25) Returns
!(opt > value).26) Returns
!(value > opt).27) Returns
bool(opt) ? value < *opt : false.28) Returns
bool(opt) ? *opt < value : true.29) Returns
!(opt < value).30) Returns
!(value < opt).Exceptions
1-6) (none)
19-30) (none)
