在编写代码时,很长一段时间我知道& &比||有更高的优先级;然而,使用C++ 11标准编译它给了我一个警告,我现在应该在单个语句中使用它们时使用括号。C++ 11何时发出有关运算符优先级的警告?
现在我得到了一个警告,指出>>和+也应该有括号。现在我的言论看起来非常难看,五个或更多的括号在他们周围浮动。
1)是否有资源说明哪些操作符组合现在需要括号?
2)有没有办法让操作员的优先警告静音,但要保留其他警告?
编译gcc
与标志-O2 -Wall -g
的警告来的时候,我加入了标志-std=c++11
样品表达:
(((string[0] << CHAR_BIT) + string[1] << CHAR_BIT) + string[2] << CHAR_BIT) + string[3];
该标准没有说明必须发布任何警告(尽管它可能会建议这样做)。它们由编译器发出,作为对你的帮助,因此禁用它们是编译器特定的 – tambre
哪个编译器?您应该将其添加到标签。 – HolyBlackCat
发布有问题的表达式。一个警告很少发生,没有原因。 – DeiDei