synth-three-way, synth-three-way-result
Материал из cppreference.com
< cpp | standard library
<tbody>
</tbody>
constexpr auto synth-three-way = /* смотрите ниже */; |
(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) |
лексикографически сравнивает значения в паре (шаблон функции) |
(удалено в C++20)(удалено в C++20)(удалено в C++20)(удалено в C++20)(удалено в C++20)(C++20) |
лексикографически сравнивает значения в кортеже (шаблон функции) |
(удалено в C++20)(удалено в C++20)(удалено в C++20)(удалено в C++20)(удалено в C++20)(C++20) |
лексикографически сравнивает значения в array (шаблон функции) |
(удалено в C++20)(удалено в C++20)(удалено в C++20)(удалено в C++20)(удалено в C++20)(C++20) |
лексикографически сравнивает значения в deque (шаблон функции) |
(удалено в C++20)(удалено в C++20)(удалено в C++20)(удалено в C++20)(удалено в 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 (шаблон функции) |