`Description`

`Description`

```
```The Equality Comparable requirements specify that it must be possible to compare objects using *operator!=* as well as *operator==*; similarly, the LessThan Comparable requirements include *operator>*, *operator<=* and *operator>=* as well as *operator<*. Logically, however, most of these operators are redundant: all of them can be defined in terms of *operator==* and *operator<*.

These four templates use *operator==* and *operator<* to define the other four relational operators. They exist purely for the sake of convenience: they make it possible to write algorithms in terms of the operators *!=*, *>*, *<=*, and *>=*, without requiring that those operators be explicitly defined for every type.

As specified in the Equality Comparable requirements, *x != y* is equivalent to *!(x == y)*. As specified in the LessThan Comparable requirements, *x > y* is equivalent to *y < x*, *x >= y* is equivalent to *!(x < y)*, and *x <= y* is equivalent to *!(y < x)*.