分配和比较uint(-1)

时间:2018-03-29 20:14:14

标签: c++

在StarCitizen Bugsmashers about tick rates中,可以看到这样的代码段:

uint i = someBool ? someuint : uint(-1);
// ... some other code ...
if (i == uint(-1)) { /* do something */ }

如果someBool为false,则i = 42949672950xFFFFFFFF /最大32位uint值:

#include <iostream>
int main()
{
    const auto i = uint(-1);
    if (i == uint(-1))
    {
        std::cout << i;
    }
}

我认为,这样做的动机是避免为if语句使用另一个控制变量。构造uint(-1)是否定义了行为?如果是,为什么?

0 个答案:

没有答案