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) | (ライブラリファンダメンタルTS) |
|
template
<
class
T
>
constexpr bool operator ! = ( const optional < T > & lhs, const optional < T > & rhs ) ; |
(2) | (ライブラリファンダメンタルTS) |
|
template
<
class
T
>
constexpr bool operator < ( const optional < T > & lhs, const optional < T > & rhs ) ; |
(3) | (ライブラリファンダメンタルTS) |
|
template
<
class
T
>
constexpr bool operator <= ( const optional < T > & lhs, const optional < T > & rhs ) ; |
(4) | (ライブラリファンダメンタルTS) |
|
template
<
class
T
>
constexpr bool operator > ( const optional < T > & lhs, const optional < T > & rhs ) ; |
(5) | (ライブラリファンダメンタルTS) |
|
template
<
class
T
>
constexpr bool operator >= ( const optional < T > & lhs, const optional < T > & rhs ) ; |
(6) | (ライブラリ基盤 TS) |
optional
オブジェクトと
nullopt
を比較する
|
||
|
template
<
class
T
>
constexpr bool operator == ( const optional < T > & opt, std:: nullopt_t ) noexcept ; |
(7) | (ライブラリファンダメンタルTS) |
|
template
<
class
T
>
constexpr bool operator == ( std:: nullopt_t , const optional < T > & opt ) noexcept ; |
(8) | (ライブラリファンダメンタルTS) |
|
template
<
class
T
>
constexpr bool operator ! = ( const optional < T > & opt, std:: nullopt_t ) noexcept ; |
(9) | (ライブラリファンダメンタルTS) |
|
template
<
class
T
>
constexpr bool operator ! = ( std:: nullopt_t , const optional < T > & opt ) noexcept ; |
(10) | (ライブラリファンダメンタルTS) |
|
template
<
class
T
>
constexpr bool operator < ( const optional < T > & opt, std:: nullopt_t ) noexcept ; |
(11) | (ライブラリファンダメンタルTS) |
|
template
<
class
T
>
constexpr bool operator < ( std:: nullopt_t , const optional < T > & opt ) noexcept ; |
(12) | (ライブラリファンダメンタルTS) |
|
template
<
class
T
>
constexpr bool operator <= ( const optional < T > & opt, std:: nullopt_t ) noexcept ; |
(13) | (ライブラリファンダメンタルTS) |
|
template
<
class
T
>
constexpr bool operator <= ( std:: nullopt_t , const optional < T > & opt ) noexcept ; |
(14) | (ライブラリファンダメンタルTS) |
|
template
<
class
T
>
constexpr bool operator > ( const optional < T > & opt, std:: nullopt_t ) noexcept ; |
(15) | (ライブラリファンダメンタルTS) |
|
template
<
class
T
>
constexpr bool operator > ( std:: nullopt_t , const optional < T > & opt ) noexcept ; |
(16) | (ライブラリファンダメンタルTS) |
|
template
<
class
T
>
constexpr bool operator >= ( const optional < T > & opt, std:: nullopt_t ) noexcept ; |
(17) | (ライブラリファンダメンタルTS) |
|
template
<
class
T
>
constexpr bool operator >= ( std:: nullopt_t , const optional < T > & opt ) noexcept ; |
(18) | (ライブラリファンダメンタルTS) |
optional
オブジェクトと
T
を比較する
|
||
|
template
<
class
T
>
constexpr bool operator == ( const optional < T > & opt, const T & value ) ; |
(19) | (ライブラリファンダメンタルTS) |
|
template
<
class
T
>
constexpr bool operator == ( const T & value, const optional < T > & opt ) ; |
(20) | (ライブラリファンダメンタルTS) |
|
template
<
class
T
>
constexpr bool operator ! = ( const optional < T > & opt, const T & value ) ; |
(21) | (ライブラリファンダメンタルTS) |
|
template
<
class
T
>
constexpr bool operator ! = ( const T & value, const optional < T > & opt ) ; |
(22) | (ライブラリ基盤 TS) |
|
template
<
class
T
>
constexpr bool operator < ( const optional < T > & opt, const T & value ) ; |
(23) | (ライブラリファンダメンタルTS) |
|
template
<
class
T
>
constexpr bool operator < ( const T & value, const optional < T > & opt ) ; |
(24) | (ライブラリファンダメンタルTS) |
|
template
<
class
T
>
constexpr bool operator <= ( const optional < T > & opt, const T & value ) ; |
(25) | (ライブラリファンダメンタルTS) |
|
template
<
class
T
>
constexpr bool operator <= ( const T & value, const optional < T > & opt ) ; |
(26) | (ライブラリファンダメンタルTS) |
|
template
<
class
T
>
constexpr bool operator > ( const optional < T > & opt, const T & value ) ; |
(27) | (ライブラリファンダメンタルTS) |
|
template
<
class
T
>
constexpr bool operator > ( const T & value, const optional < T > & opt ) ; |
(28) | (ライブラリファンダメンタルTS) |
|
template
<
class
T
>
constexpr bool operator >= ( const optional < T > & opt, const T & value ) ; |
(29) | (ライブラリファンダメンタルTS) |
|
template
<
class
T
>
constexpr bool operator >= ( const T & value, const optional < T > & opt ) ; |
(30) | (ライブラリファンダメンタルTS) |
optional
オブジェクトに対する比較操作を実行します。
1-6)
2つの
optional
オブジェクト、
lhs
と
rhs
を比較します。格納された値は、
lhs
と
rhs
の両方が値を保持している場合にのみ比較されます(
(1,2)
では
operator
==
を使用、
(3-6)
では
operator
<
を使用)。それ以外の場合、
-
-
- lhs は、 lhs と rhs の両方が値を保持していない場合に限り、 rhs と 等しい と見なされます。
- lhs は、 rhs が値を保持しており、かつ lhs が値を保持していない場合に限り、 rhs より 小さい と見なされます。
-
7-18)
opt
を
nullopt
と比較します。値を含まない
optional
との比較における(1-6)と同等です。
19-30)
opt
を
value
と比較します。値の比較は(
(19-22)
では
operator
==
を使用し、
(23-30)
では
operator
<
を使用)
opt
が値を保持している場合にのみ行われます。それ以外の場合、
opt
は
value
より
小さい
と見なされます。
パラメータ
| lhs, rhs, opt | - |
比較対象の
optional
オブジェクト
|
| value | - | 格納されている値と比較する値 |
| 型要件 | ||
-
T
はオーバーロード(1,2)を使用するために
EqualityComparable
の要件を満たさなければならない。
|
||
戻り値
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)
(なし)