operator==, !=, <, <=, >, >= (std::experimental::optional)
From cppreference.net
<
cpp
|
experimental
|
optional
|
定义于头文件
<experimental/optional>
|
||
|
比较两个
optional
对象
|
||
|
template
<
class
T
>
constexpr bool operator == ( const optional < T > & lhs, const optional < T > & rhs ) ; |
(1) | (库基础技术规范) |
|
template
<
class
T
>
constexpr bool operator ! = ( const optional < T > & lhs, const optional < T > & rhs ) ; |
(2) | (库基础技术规范) |
|
template
<
class
T
>
constexpr bool operator < ( const optional < T > & lhs, const optional < T > & rhs ) ; |
(3) | (库基础技术规范) |
|
template
<
class
T
>
constexpr bool operator <= ( const optional < T > & lhs, const optional < T > & rhs ) ; |
(4) | (库基础技术规范) |
|
template
<
class
T
>
constexpr bool operator > ( const optional < T > & lhs, const optional < T > & rhs ) ; |
(5) | (库基础技术规范) |
|
template
<
class
T
>
constexpr bool operator >= ( const optional < T > & lhs, const optional < T > & rhs ) ; |
(6) | (库基础技术规范) |
|
比较一个
optional
对象与
nullopt
|
||
|
template
<
class
T
>
constexpr bool operator == ( const optional < T > & opt, std:: nullopt_t ) noexcept ; |
(7) | (库基础技术规范) |
|
template
<
class
T
>
constexpr bool operator == ( std:: nullopt_t , const optional < T > & opt ) noexcept ; |
(8) | (库基础技术规范) |
|
template
<
class
T
>
constexpr bool operator ! = ( const optional < T > & opt, std:: nullopt_t ) noexcept ; |
(9) | (库基础技术规范) |
|
template
<
class
T
>
constexpr bool operator ! = ( std:: nullopt_t , const optional < T > & opt ) noexcept ; |
(10) | (库基础技术规范) |
|
template
<
class
T
>
constexpr bool operator < ( const optional < T > & opt, std:: nullopt_t ) noexcept ; |
(11) | (库基础技术规范) |
|
template
<
class
T
>
constexpr bool operator < ( std:: nullopt_t , const optional < T > & opt ) noexcept ; |
(12) | (库基础技术规范) |
|
template
<
class
T
>
constexpr bool operator <= ( const optional < T > & opt, std:: nullopt_t ) noexcept ; |
(13) | (库基础技术规范) |
|
template
<
class
T
>
constexpr bool operator <= ( std:: nullopt_t , const optional < T > & opt ) noexcept ; |
(14) | (库基础技术规范) |
|
template
<
class
T
>
constexpr bool operator > ( const optional < T > & opt, std:: nullopt_t ) noexcept ; |
(15) | (库基础技术规范) |
|
template
<
class
T
>
constexpr bool operator > ( std:: nullopt_t , const optional < T > & opt ) noexcept ; |
(16) | (库基础技术规范) |
|
template
<
class
T
>
constexpr bool operator >= ( const optional < T > & opt, std:: nullopt_t ) noexcept ; |
(17) | (库基础技术规范) |
|
template
<
class
T
>
constexpr bool operator >= ( std:: nullopt_t , const optional < T > & opt ) noexcept ; |
(18) | (库基础技术规范) |
|
比较一个
optional
对象与
T
|
||
|
template
<
class
T
>
constexpr bool operator == ( const optional < T > & opt, const T & value ) ; |
(19) | (库基础技术规范) |
|
template
<
class
T
>
constexpr bool operator == ( const T & value, const optional < T > & opt ) ; |
(20) | (库基础技术规范) |
|
template
<
class
T
>
constexpr bool operator ! = ( const optional < T > & opt, const T & value ) ; |
(21) | (库基础技术规范) |
|
template
<
class
T
>
constexpr bool operator ! = ( const T & value, const optional < T > & opt ) ; |
(22) | (库基础技术规范) |
|
template
<
class
T
>
constexpr bool operator < ( const optional < T > & opt, const T & value ) ; |
(23) | (库基础技术规范) |
|
template
<
class
T
>
constexpr bool operator < ( const T & value, const optional < T > & opt ) ; |
(24) | (库基础技术规范) |
|
template
<
class
T
>
constexpr bool operator <= ( const optional < T > & opt, const T & value ) ; |
(25) | (库基础技术规范) |
|
template
<
class
T
>
constexpr bool operator <= ( const T & value, const optional < T > & opt ) ; |
(26) | (库基础技术规范) |
|
template
<
class
T
>
constexpr bool operator > ( const optional < T > & opt, const T & value ) ; |
(27) | (库基础技术规范) |
|
template
<
class
T
>
constexpr bool operator > ( const T & value, const optional < T > & opt ) ; |
(28) | (库基础技术规范) |
|
template
<
class
T
>
constexpr bool operator >= ( const optional < T > & opt, const T & value ) ; |
(29) | (库基础技术规范) |
|
template
<
class
T
>
constexpr bool operator >= ( const T & value, const optional < T > & opt ) ; |
(30) | (库基础技术规范) |
对
optional
对象执行比较操作。
1-6)
比较两个
optional
对象
lhs
和
rhs
。仅当
lhs
和
rhs
均包含值时,才会比较所含值(
(1,2)
使用
operator
==
,
(3-6)
使用
operator
<
)。否则,
-
-
- lhs 被视为 等于 rhs 当且仅当 lhs 与 rhs 均不包含值。
- lhs 被视为 小于 rhs 当且仅当 rhs 包含值而 lhs 不包含值。
-
7-18)
将
opt
与
nullopt
进行比较。当与不包含值的
optional
进行比较时,等同于(1-6)的操作。
19-30)
将
opt
与
value
进行比较。仅当
opt
包含值时才会进行值比较(
(19-22)
使用
operator
==
,
(23-30)
使用
operator
<
)。否则,
opt
被视为
小于
value
。
参数
| lhs, rhs, opt | - |
用于比较的
optional
对象
|
| value | - | 与所含值进行比较的值 |
| 类型要求 | ||
-
T
必须满足
EqualityComparable
要求才能使用重载 (1,2)
|
||
返回值
1)
如果
bool
(
lhs
)
!
=
bool
(
rhs
)
,则返回
false
。
否则,如果
bool
(
lhs
)
==
false
(因此
bool
(
rhs
)
==
false
也成立),则返回
true
。
否则,返回
*
lhs
==
*
rhs
。
2)
返回
!
(
lhs
==
rhs
)
。
3)
如果
bool
(
rhs
)
==
false
返回
false
。
否则,若
bool
(
lhs
)
==
false
,则返回
true
。
否则返回
*
x
<
*
y
。
4)
返回
!
(
rhs
<
lhs
)
。
5)
返回
rhs
<
lhs
。
6)
返回
!
(
lhs
<
rhs
)
。
7,8)
返回
!
opt
。
9,10)
返回
bool
(
opt
)
。
11)
返回
false
。
12)
返回
bool
(
opt
)
。
13)
返回
!
opt
。
14)
返回
true
。
15)
返回
bool
(
opt
)
。
16)
返回
false
。
17)
返回
true
。
18)
返回
!
opt
。
19)
返回
bool
(
opt
)
?
*
opt
==
value
:
false
。
20)
返回
bool
(
opt
)
?
value
==
*
opt
:
false
。
21)
返回
bool
(
opt
)
?
!
(
*
opt
==
value
)
:
true
。
22)
返回
bool
(
opt
)
?
!
(
value
==
*
opt
)
:
true
。
23)
返回
bool
(
opt
)
?
*
opt
<
value
:
true
。
24)
返回
bool
(
opt
)
?
value
<
*
opt
:
false
。
25)
返回
!
(
opt
>
value
)
。
26)
返回
!
(
value
>
opt
)
。
27)
返回
bool
(
opt
)
?
value
<
*
opt
:
false
。
28)
返回
bool
(
opt
)
?
*
opt
<
value
:
true
。
29)
返回
!
(
opt
<
value
)
。
30)
返回
!
(
value
<
opt
)
。
异常
1-6)
(无)
19-30)
(无)