operator==, !=, <, <=, >, >=(std::experimental::optional)
From cppreference.com
< cpp | experimental | optional
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
-
-
- lhs is considered equal to rhs if, and only if, both lhs and rhs
- lhs is considered less than rhs if, and only if, rhs contains a value and lhs
-
7-18) Compares opt with a nullopt. Equivalent to (1-6) when comparing to an
optional
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
lhs, rhs, opt | - | an optional object to compare
|
value | - | value to compare to the contained value |
Type requirements | ||
-
T must meet the requirements of EqualityComparable
|
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)