В чем разница между эквивалентностью и равенством?

В чем разница между эквивалентностью и равенством в C ++?

Здесь есть очень похожий вопрос здесь. Однако этот вопрос помечен тегом math, а я меня интересует смысл в контексте C ++.

Чтобы увидеть термины в контексте: Скотт Мейерс использует их в примере в этом видео.


person 463035818_is_not_a_number    schedule 12.08.2015    source источник


Ответы (1)


На cppreference.com я нашел следующую цитату:

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

person 463035818_is_not_a_number    schedule 12.08.2015
comment
В более общем плане для каждого Compare comp вы можете синтезировать эквивалент !comp(a, b) && !comp(b, a). Равенство только одно, но эквивалентностей может быть любое количество - person Caleth; 05.07.2018