例如
size_t x = -1u;
if (x == -1u)
...
有效的?
如果有效,它将阻止警告。
当然,在32位系统上,x应该为0xffffffff,而在64位系统上
系统应为0xffffffffffffffffff。
-乔臣
最佳答案
1u
的类型为unsigned int
。然后使用一元-
运算符将其取反。行为如下:
因此,-1u
可以保证为您提供unsigned int
可代表的最大值(value)。
要获得可由任意无符号类型表示的最大值,可以将-1
强制转换为该类型。例如,对于std::size_t
,请考虑
static_cast<std::size_t>(-1)
。