根据cppreference,std::type_info::operator!=被C ++ 20删除,但是std::type_info::operator==显然仍然存在。
背后的原因是什么?我可能会同意比较不平等是没有意义的,但是然后比较相等也同样是没有意义的,不是吗?
相比之下,必须编写if(!(id1 == id2))并不会使任何代码更清晰if(id1 != id2),相反,相反……
这是 C++20 中的标准行为吗?我在 cppreference 中找不到任何关于它的信息。
我刚刚在 Clang 和 Visual Studio 上都尝试过,它可以工作,并且没有给我任何错误或警告。我还检查了调试器,看看是否operator==被调用,它是!C++20 现在是否允许自动生成operator!=何时operator==存在?它默认为 sane!(a == b)吗?如果是这样,那对 C++ 来说真是太棒了!
c++ comparison operator-overloading comparison-operators c++20