3

Windows で MS C++ を使用し、Linux で GCC を使用してコンパイルする必要がある C++ アプリを作成しています。Windows で std::list を反復処理するループを作成しました。

 auto  iter = container.GetObj()->begin();
 while (iter!=container.GetObj()->end()){

   (*(iter++))->Execute();

 }

正常に動作しますが、GCC "auto" でコンパイルすると認識されません:

予期しないトークン「auto」 (NetBeans IDE 内)

そこで、イテレータを「明示的に定義して修正しました:

 std::list<Container*>::iterator iter=container.GetObj()->begin();
 while (iter!=container.GetObj()->end()){

   (*(iter++))->Execute();

 }

私のGCCバージョンは4.7.2です

GCC が auto キーワードをサポートしていないということですか?コンパイラをアップグレードする必要があるのでしょうか?

4

1 に答える 1

6

これは、 gcc c++ 11 サポートへのリンクです。また、コマンド ラインに -std=c++11 を追加する必要があります。

于 2013-01-23T15:49:47.377 に答える