使用std::rel_ops将完整的关系运算符集添加到类的首选方法是什么?
该文档建议一个using namespace std::rel_ops,但是这似乎是有严重缺陷的,因为这将意味着包括以这种方式实现的类的头也将增加全关系运算符所有其他类与定义operator<和operator==,即使是不希望的.这有可能以令人惊讶的方式改变代码的含义.
作为旁注 - 我一直在使用Boost.Operators来做这件事,但我仍然对标准库感到好奇.
如果我已经有operator>和operator < defined(和operator ==),我是否需要定义operator> =和operator <=,或者如果我故意不声明它们,编译器是否会为它声明它们?
另外,如果我有operator == defined,编译器会为我声明operator!=吗?