Пространства имён
Варианты
Действия

C++ именованные требования: LessThanComparable

Материал из cppreference.com
 
 
Именованные требования в C++
Основные
Свойства типа
В масштабах библиотеки
Контейнер
Элементы контейнера
(C++11)

Итератор
Потоковый Ввод/Вывод
Форматтеры
(C++20)
Случайные Числа
(C++11)    
Конкуренция
(C++11)
(C++11)
Диапазоны
Другое
(C++11)


 

Тип должен работать с оператором < и результат должен иметь стандартный смысл.

Требования

Тип T удовлетворяет LessThanComparable если

Даны

  • a, b, и c, выражения типа T или const T

Эти выражения должны быть допустимыми и иметь следующие эффекты:

Выражение Возвращаемый тип Возвращаемое значение Постусловия
a < b implicitly convertible к bool Establishes strict weak ordering отношение со следующими свойствами:
  • Для всех a, !(a < a)
  • Если a < b? тогда !(b < a)
  • Если a < b и b < c тогда a < c
  • Определение equiv(a, b) как !(a < b) && !(b < a), если equiv(a, b) и equiv(b, c), тогда equiv(a, c)

Требования

Чтобы удовлетворять этому требованию, типы, которые не имеют встроенных comparison operators должны обеспечить user-defined operator<.

Для типов, которые одновременно EqualityComparable и LessThanComparable, стандартная библиотека C++ умеет различать равенство, которое является значением выражения a == b и эквивалентность, которое является значением выражения !(a < b) && !(b < a).

Смотри также

a BinaryPredicate которые устанавливают отношения порядка
(именованное требование)