synth-three-way, synth-three-way-result
constexpr auto synth-three-way = /* see below */; | (1) |
(начиная с C++20) (только для иллюстрации*) |
template< class T, class U = T >
using synth-three-way-result =
decltype(synth-three-way(std::declval<T&>(), std::declval<U&>()));
| (2) |
(начиная с C++20) (только для иллюстрации*) |
1) Функциональный объект, чей operator() действует как синтезированная функция трёхстороннего сравнения. Эквивалентен:
constexpr auto synth-three-way =
[]<class T, class U>(const T& t, const U& u)
requires requires
{
{ t < u } -> boolean-testable;
{ u < t } -> boolean-testable;
}
{
if constexpr (std::three_way_comparable_with<T, U>)
return t <=> u;
else
{
if (t < u)
return std::weak_ordering::less;
if (u < t)
return std::weak_ordering::greater;
return std::weak_ordering::equivalent;
}
};
2) Тип возвращаемого значения operator() из (1) (
synth-three-way).Параметры
| t, u | - | сравниваемые значения |
Возвращаемое значение
Результат сравнения.
См. также
|
(удалён в C++20)(удалён в C++20)(удалён в C++20)(удалён в C++20)(удалён в C++20)(C++20) | лексикографически сравнивает значения в pair (шаблон функции) |
|
(удалён в C++20)(удалён в C++20)(удалён в C++20)(удалён в C++20)(удалён в C++20)(C++20) | лексикографически сравнивает значения в кортеже (шаблон функции) |
|
(C++11)(C++11)(удалён в C++20)(C++11)(удалён в C++20)(C++11)(удалён в C++20)(C++11)(удалён в C++20)(C++11)(удалён в C++20)(C++20) | лексикографически сравнивает значения двух array (шаблон функции) |
|
(удалён в C++20)(удалён в C++20)(удалён в C++20)(удалён в C++20)(удалён в C++20)(C++20) | лексикографически сравнивает значения двух deque (шаблон функции) |
|
(C++11)(C++11)(удалён в C++20)(C++11)(удалён в C++20)(C++11)(удалён в C++20)(C++11)(удалён в C++20)(C++11)(удалён в C++20)(C++20) | лексикографически сравнивает значения двух forward_list (шаблон функции) |
|
(удалён в C++20)(удалён в C++20)(удалён в C++20)(удалён в C++20)(удалён в C++20)(C++20) | лексикографически сравнивает значения двух list (шаблон функции) |
|
(удалён в C++20)(удалён в C++20)(удалён в C++20)(удалён в C++20)(удалён в C++20)(C++20) | лексикографически сравнивает значения двух vector (шаблон функции) |
|
(удалён в C++20)(удалён в C++20)(удалён в C++20)(удалён в C++20)(удалён в C++20)(C++20) | лексикографически сравнивает значения двух map (шаблон функции) |
|
(удалён в C++20)(удалён в C++20)(удалён в C++20)(удалён в C++20)(удалён в C++20)(C++20) | лексикографически сравнивает значения двух multimap (шаблон функции) |
|
(удалён в C++20)(удалён в C++20)(удалён в C++20)(удалён в C++20)(удалён в C++20)(C++20) | лексикографически сравнивает значения двух set (шаблон функции) |
|
(удалён в C++20)(удалён в C++20)(удалён в C++20)(удалён в C++20)(удалён в C++20)(C++20) | лексикографически сравнивает значения двух multiset (шаблон функции) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/standard_library/synth-three-way