编辑:确实,我的计时代码中有一个奇怪的错误导致了这些结果。当我修复我的错误时,智能版本如预期的那样更快结束。我的计时代码如下所示:boolx=false;before=now();for(inti=0;i我已经完成了^=来阻止我的编译器优化for循环。但我认为^=以某种方式与两个xor函数进行了奇怪的交互。我更改了我的计时代码以简单地填写一个异或结果数组,然后在计时代码之外对该数组进行计算。那就是固定的东西。我应该删除这个问题吗?结束编辑我定义了两个C++函数如下:boolsmart_xor(boola,boolb){returna^b;}booldumb_xor(boola,bool