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

std::strict_weak_order

Материал из cppreference.com
< cpp‎ | concepts
 
 
 
Определено в заголовочном файле <concepts>
template<class R, class T, class U >
concept strict_weak_order =std::relation<R, T, U>;
(начиная с C++20)

Концепт strict_weak_order<R, T, U> определяет, что relationR налагает на свои аргументы строгий слабый порядок.

[править]Семантические требования

Отношение r является строгим слабым порядком, если

  • оно иррефлексивно: для всех x, r(x, x) равно false;
  • оно транзитивно: для всех a, b и c, если r(a, b) и r(b, c) оба равны true, тогда r(a, c) равно true;
  • пусть e(a, b) равно !r(a, b) && !r(b, a), тогда e транзитивно: e(a, b)&& e(b, c) подразумевает e(a, c).

При этих условиях можно сказать, что e является отношением эквивалентности, а r вызывает строгий полный порядок в классах эквивалентности, определяемых e.

[править]Примечание

Различие между relation и strict_weak_order чисто семантическое.

[править]Смотрите также

close