22

What is the difference between equivalence and equality in C++?

There is a very similar question here. However, this question is tagged with , while I am interested in the meaning in C++ context.

To see the terms in context: Scott Meyers uses them in an example in this video.

Community
  • 1
  • 1
463035818_is_not_an_ai
  • 109,796
  • 11
  • 89
  • 185

1 Answers1

21

On cppreference.com i found the following quote:

For the types that are both EqualityComparable and LessThanComparable, the C++ standard library makes a distinction between equality, which is the value of the expression a == b and equivalence, which is the value of the expression !(a < b) && !(b < a).

463035818_is_not_an_ai
  • 109,796
  • 11
  • 89
  • 185
  • More generally, for each `Compare comp` you can synthesise an equivalence `!comp(a, b) && !comp(b, a)`. There is only one "equality", but there can be any number of "equivalences" – Caleth Jul 05 '18 at 11:35