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
contain values. Otherwise,
-
-
- lhs is considered equal to rhs if, and only if, both lhs and rhs do not contain a value.
- lhs is considered less than rhs if, and only if, rhs contains a value and lhs does 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
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
in order to use overloads (1,2).
|
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)