std::type_order
Определён в заголовочном файле <compare> | ||
|---|---|---|
template< class T, class U > struct type_order; | (начиная с C++26) |
Реализует определяемый реализацией полный порядок для всех типов.
Предоставляет константу-член value, равную std::strong_ordering::less, если T предшествует U в этом определяемом реализацией полном порядке, std::strong_ordering::greater, если U предшествует T, и std::strong_ordering::equal, если они имеют одинаковый тип.
Этот порядок не обязательно согласован с порядком, задаваемым std::type_info::before.
Аргументы шаблона T и U могут быть неполными типами.
Если программа добавляет специализации для std::type_order или std::type_order_v, программа некорректна.
Вспомогательный шаблон переменной
template< class T, class U > constexpr std::strong_ordering type_order_v = type_order<T, U>::value; | (начиная с C++26) |
Константы-члены
|
value
[статическая] | значение типа std::strong_ordering, описанное выше (общедоступная статическая константа-член) |
Функции-члены
|
operator std::strong_ordering | преобразует объект в std::strong_ordering, возвращает value (общедоступная функция-член) |
|
operator() | возвращает value (общедоступная функция-член) |
Типы-члены
| Тип | Определение |
|---|---|
value_type | std::strong_ordering |
Примечания
| Макрос проверки поддержки возможностей | Значение | Стандарт | Возможность |
|---|---|---|---|
__cpp_lib_type_order | 202506L | (C++26) |
std::type_order, std::type_order_v |
Пример
См. также
|
(C++20) | тип результата трёхстороннего сравнения, поддерживающий все 6 операторов и допускающий подстановку (класс) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/utility/compare/type_order