23

すべて、最近、c ++ 11でサポートされている新機能を使用しようとしましたが、そのようなステートメントを記述しましたが、コンパイラーの実行に失敗しました。

auto x = 1;

以下にリストされているレポートエラー:

D:\DEV\CBCppTest\main.cpp||In function 'int main()':|
D:\DEV\CBCppTest\main.cpp|22|warning: 'auto' changes meaning in C++11; please remove it [-Wc++0x-compat]|
D:\DEV\CBCppTest\main.cpp|22|error: 'x' does not name a type|
||=== Build finished: 1 errors, 1 warnings ===|

MinGWの最後のgccバージョン4.7.0がこのステートメントをサポートできない理由。しかし、vs10のコンパイラは合格しました。誰かがこの問題の理由を知っていますか?

4

5 に答える 5

33

「GCCは2011ISOC ++標準の実験的サポートを提供します。このサポートは、-std = c++11または-std=gnu++11コンパイラオプションで有効にできます。前者はGNU拡張を無効にします。」

ここから来ます:c+11サポート

于 2012-04-08T15:19:10.513 に答える
8

-std=c++11コンパイルするときは、 g++コマンドラインに追加する必要があります。

于 2012-04-08T15:19:23.730 に答える
2

これは、GCC コンパイラによってデフォルトで有効にされていない機能によるものです。コードブロックを使用している場合は、[設定] --> [コンパイラ] に移動し、次のように機能を有効にします - http://imgur.com/KrHx8nh

于 2013-07-23T12:19:08.697 に答える