簡體   English   中英

G ++使用C ++ 98縮小轉換范圍

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM