我在 linux 上有一个带有 g++ 4.7.3 的 C++98 项目,我收到很多关于“在 C++11 中缩小转换格式不正确”的警告
怎么来的?我什至没有使用 C++11
这些警告是“这现在有效,但将来不会有效”警告。它们专为有效的 C++98 代码而设计,在 C++98 模式下不会导致编译错误,但如果您打算在将来切换到 C++11,则会导致问题。默认情况下它们不会被启用,而是由-Wall
. 如果您真的确定这不会发生,您可以更改-Wall
为-Wall -Wno-c++11-compat
示例代码:
unsigned u[] = {-1};
$ g++ -c test.cc -ansi -pedantic $ g++ -c test.cc -ansi -pedantic -Wall test.cc:1:19:警告:在 C++11 [-Wnarrowing] 中,在 {} 内将“-1”从“int”缩小到“unsigned int”的转换是不正确的 无符号 u[] = {-1}; ^ $ g++ -c test.cc -ansi -pedantic -Wall -Wno-c++11-compat