C++ const uint32_t给出错误:对有符号整数执行hicpp位运算

C++ const uint32_t给出错误:对有符号整数执行hicpp位运算,c++,bitwise-operators,clang-tidy,C++,Bitwise Operators,Clang Tidy,下面的代码给了我一个叮当当当的错误: [clang tidy]有符号整数的hicpp位运算 当我按如下所示更改代码时,该错误消失了: uint32_t masked_var = ptr->c.b & (static_cast<uint32_t>(mask)); uint32屏蔽变量=ptr->c.b&(静态屏蔽); 在这个例子中,mask不是已经没有签名了吗?听起来像是clang tidy处理&的错误,而不是代码本身。没有理由将aconst uint32\u t类型

下面的代码给了我一个叮当当当的错误:

[clang tidy]有符号整数的hicpp位运算

当我按如下所示更改代码时,该错误消失了:

uint32_t masked_var = ptr->c.b & (static_cast<uint32_t>(mask));
uint32屏蔽变量=ptr->c.b&(静态屏蔽);

在这个例子中,
mask
不是已经没有签名了吗?

听起来像是clang tidy处理
&
的错误,而不是代码本身。没有理由将a
const uint32\u t
类型转换为a
uint32\u t
(如果您这样做,您应该使用
const\u cast
,而不是
static\u cast
)您使用的是什么版本的clang tidy?我在ClangTidy 10.0.0中没有看到这个错误(使用
--checks=*
)。
uint32_t masked_var = ptr->c.b & (static_cast<uint32_t>(mask));