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) | (библиотека fundamentals 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) | (техническая спецификация библиотеки fundamentals) |
|
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) | (библиотека fundamentals TS) |
|
template
<
class
T
>
constexpr bool operator >= ( const optional < T > & lhs, const optional < T > & rhs ) ; |
(6) | (библиотека fundamentals TS) |
|
Сравнить объект
optional
с
nullopt
|
||
|
template
<
class
T
>
constexpr bool operator == ( const optional < T > & opt, std:: nullopt_t ) noexcept ; |
(7) | (библиотека fundamentals TS) |
|
template
<
class
T
>
constexpr bool operator == ( std:: nullopt_t , const optional < T > & opt ) noexcept ; |
(8) | (библиотека fundamentals TS) |
|
template
<
class
T
>
constexpr bool operator ! = ( const optional < T > & opt, std:: nullopt_t ) noexcept ; |
(9) | (библиотека fundamentals TS) |
|
template
<
class
T
>
constexpr bool operator ! = ( std:: nullopt_t , const optional < T > & opt ) noexcept ; |
(10) | (библиотека fundamentals TS) |
|
template
<
class
T
>
constexpr bool operator < ( const optional < T > & opt, std:: nullopt_t ) noexcept ; |
(11) | (библиотека fundamentals TS) |
|
template
<
class
T
>
constexpr bool operator < ( std:: nullopt_t , const optional < T > & opt ) noexcept ; |
(12) | (библиотека fundamentals TS) |
|
template
<
class
T
>
constexpr bool operator <= ( const optional < T > & opt, std:: nullopt_t ) noexcept ; |
(13) | (библиотека fundamentals TS) |
|
template
<
class
T
>
constexpr bool operator <= ( std:: nullopt_t , const optional < T > & opt ) noexcept ; |
(14) | (библиотека fundamentals TS) |
|
template
<
class
T
>
constexpr bool operator > ( const optional < T > & opt, std:: nullopt_t ) noexcept ; |
(15) | (библиотека fundamentals 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) | (библиотека fundamentals 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) | (техническая спецификация библиотечных основ) |
|
template
<
class
T
>
constexpr bool operator == ( const T & value, const optional < T > & opt ) ; |
(20) | (библиотека fundamentals TS) |
|
template
<
class
T
>
constexpr bool operator ! = ( const optional < T > & opt, const T & value ) ; |
(21) | (библиотека fundamentals TS) |
|
template
<
class
T
>
constexpr bool operator ! = ( const T & value, const optional < T > & opt ) ; |
(22) | (библиотека fundamentals TS) |
|
template
<
class
T
>
constexpr bool operator < ( const optional < T > & opt, const T & value ) ; |
(23) | (библиотека fundamentals TS) |
|
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) | (библиотека fundamentals TS) |
|
template
<
class
T
>
constexpr bool operator <= ( const T & value, const optional < T > & opt ) ; |
(26) | (библиотека fundamentals TS) |
|
template
<
class
T
>
constexpr bool operator > ( const optional < T > & opt, const T & value ) ; |
(27) | (библиотека fundamentals TS) |
|
template
<
class
T
>
constexpr bool operator > ( const T & value, const optional < T > & opt ) ; |
(28) | (библиотека fundamentals TS) |
|
template
<
class
T
>
constexpr bool operator >= ( const optional < T > & opt, const T & value ) ; |
(29) | (библиотека fundamentals TS) |
|
template
<
class
T
>
constexpr bool operator >= ( const T & value, const optional < T > & opt ) ; |
(30) | (библиотека fundamentals TS) |
Выполняет операции сравнения для объектов
optional
.
1-6)
Сравнивает два объекта
optional
,
lhs
и
rhs
. Содержимое сравнивается (с использованием
operator
==
для
(1,2)
и
operator
<
для
(3-6)
) только если оба объекта
lhs
и
rhs
содержат значения. В противном случае,
-
-
- lhs считается равным rhs тогда и только тогда, когда ни lhs , ни rhs не содержат значения.
- lhs считается меньшим чем rhs тогда и только тогда, когда rhs содержит значение, а lhs — нет.
-
7-18)
Сравнивает
opt
с
nullopt
. Эквивалентно (1-6) при сравнении с
optional
, не содержащим значения.
19-30)
Сравнивает
opt
со
value
. Значения сравниваются (с использованием
operator
==
для
(19-22)
и
operator
<
для
(23-30)
) только если
opt
содержит значение. В противном случае
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)
(нет)