正如我们know一样,将无符号值与“大于等于”的值比较为0是毫无意义的,因为这始终是正确的。但是,通常会将无符号值与模板参数进行比较,例如if (size() >= FixedValue)
...给hs编译器警告
“无符号int与零的无意义比较”
除了专门研究FixedValue = 0
之外,如何避免该警告?我不想将其转换为一个有符号的值,以免弄乱超过有符号积分限制的值。
看似愚蠢,但你可以写
if ((size() > FixedValue) or (size() == FixedValue))
因为这两种情况都不是无关紧要的。但是,请仔细检查您是否确实需要比较,而编译器并没有警告您。
如果size()
的结果需要花费一些精力进行计算,请在进行比较之前将其存储在某个位置。