operator==, <=>(std::reference_wrapper)
От ru.cppreference.net
friend constexpr bool
operator==( reference_wrapper lhs, reference_wrapper rhs );
|
(1) | (начиная с C++26) |
friend constexpr bool
operator==( reference_wrapper lhs, reference_wrapper<const T> rhs );
|
(2) | (начиная с C++26) |
friend constexpr bool
operator==( reference_wrapper lhs, const T& ref );
|
(3) | (начиная с C++26) |
friend constexpr auto
operator<=>( reference_wrapper lhs, reference_wrapper rhs );
|
(4) | (начиная с C++26) |
friend constexpr auto
operator<=>( reference_wrapper lhs, reference_wrapper<const T> rhs );
|
(5) | (начиная с C++26) |
friend constexpr auto
operator<=>( reference_wrapper lhs, const T& ref );
|
(6) | (начиная с C++26) |
Выполняет операции сравнения над reference_wrapper объектами.
1,2) Сравнивает два
reference_wrapper объекта. Объекты считаются равными тогда и только тогда, когда lhs.get() и rhs.get() равны.1) Эта перегрузка участвует в разрешении перегрузки только если выражение
lhs.get() == rhs.get() корректно и его результат преобразуем в bool.2) Эта перегрузка участвует в разрешении перегрузки только если выполнены все следующие условия:
std::is_const_v<T>являетсяfalse.- Выражение
lhs.get() == rhs.get()корректно и его результат преобразуем вbool.
3) Сравнивает
reference_wrapper объект со ссылкой. Параметры считаются равными тогда и только тогда, когда lhs.get() равно ref. Эта перегрузка участвует в разрешении перегрузки только если выражение
lhs.get() == ref корректно и его результат преобразуем в bool.4) Эта перегрузка участвует в разрешении перегрузки только если выражение synth-three-way
(lhs.get(), rhs.get()) корректно.5) Эта перегрузка участвует в разрешении перегрузки только если выполнены все следующие условия:
std::is_const_v<T>являетсяfalse.- Выражение synth-three-way
(lhs.get(), rhs.get())корректно.
Эта перегрузка участвует в разрешении перегрузки только если выражение synth-three-way
(lhs.get(), ref) корректно.Операторы <, <=, >, >=, и != являются синтезированными из operator<=> и operator== соответственно.
Параметры
| lhs, rhs | - |
reference_wrapper
объекты для сравнения
|
| ref | - |
ссылка для сравнения с объектом
reference_wrapper
|
Возвращаемое значение
1,2)
lhs.
get
(
)
==
rhs.
get
(
)
.
3)
lhs.
get
(
)
==
ref
.
4,5)
synth-three-way
(
lhs.
get
(
)
, rhs.
get
(
)
)
.
6)
synth-three-way
(
lhs.
get
(
)
, ref
)
.
Исключения
Выбрасывает, когда и что выбрасывает сравнение.
Примечания
Типы возвращаемых значений operator <=> выводятся из return выражений, чтобы избежать ошибки компиляции при инстанцировании std:: reference_wrapper < T > с synth-three-way-result <T> , который является некорректно сформированным.
| Макрос тестирования возможностей | Значение | Стандарт | Функция |
|---|---|---|---|
__cpp_lib_reference_wrapper
|
202403L
|
(C++26) |
Сравнения для
std::reference_wrapper
|
Пример
|
Этот раздел не завершён
Причина: отсутствует пример |