c++ - 在 if 条件下对左右变化值的相等性检查是否有任何区别

标签 c++

<分区>

下面两段代码有区别吗?

if(x==4)
{

}

if(4 == x)
{

}

如果是的话对性能有什么大的影响吗?

最佳答案

有区别吗?是的;如果比较中涉及的类型之一是用户定义的,则该类型的编写者可以使他们的 operator== 重载不可交换。

但是,这样的代码应该被认为是行为不端的。用户期望相等性测试是可交换的。在 C++20 中,编写交换相等性测试比编写非交换相等性测试要容易得多。

因此,虽然编译器不会阻止您,但可以合理安全地假设相等性测试是可交换的。

关于c++ - 在 if 条件下对左右变化值的相等性检查是否有任何区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51232651/

相关文章:

C++/Lua FFI 将用户数据呈现为表格?

c++ - 使用 SFML 等图形库时如何嵌入字体和其他图像文件

c++ - 错误函数未在范围内声明

c++ - iterator 和 const_iterator (STL) 效率不同

c++ - Python:获取两个大写字母之间的字符串

c++ - 如何解析 HTTP POST(文件上传)流?

c++ - 是否可以对基类非 QObject 类的虚函数进行槽化

c++ - ListView 中嵌入的进度条

c++ - 为什么 Loki 库没有得到更广泛的使用?

c++ - MySQL 连接器/C++ : get_driver_instance() crashes when called from global construct