[英]G++ narrowing conversions with C++98
我在使用g ++ 4.7.3的Linux上有一個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: warning: narrowing conversion of ‘-1’ from ‘int’ to ‘unsigned int’ inside { } is ill-formed in C++11 [-Wnarrowing] unsigned u[] = {-1}; ^ $ g++ -c test.cc -ansi -pedantic -Wall -Wno-c++11-compat
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.