Annex D (normative) Compatibility features [depr]

D.7 Relational operators [depr.relops]

The header <utility> has the following additions:
namespace std::rel_ops {
  template<class T> bool operator!=(const T&, const T&);
  template<class T> bool operator> (const T&, const T&);
  template<class T> bool operator<=(const T&, const T&);
  template<class T> bool operator>=(const T&, const T&);
}
To avoid redundant definitions of operator!= out of operator== and operators >, <=, and >= out of operator<, the library provides the following:
template<class T> bool operator!=(const T& x, const T& y);
Requires: Type T is Cpp17EqualityComparable ([tab:equalitycomparable]Table *tab:equalitycomparable).
Returns: !(x == y).
template<class T> bool operator>(const T& x, const T& y);
Requires: Type T is Cpp17LessThanComparable ([tab:lessthancomparable]Table *tab:lessthancomparable).
Returns: y < x.
template<class T> bool operator<=(const T& x, const T& y);
Requires: Type T is Cpp17LessThanComparable ([tab:lessthancomparable]Table *tab:lessthancomparable).
Returns: !(y < x).
template<class T> bool operator>=(const T& x, const T& y);
Requires: Type T is Cpp17LessThanComparable ([tab:lessthancomparable]Table *tab:lessthancomparable).
Returns: !(x < y).