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 キーワードをサポートしていないということですか?コンパイラをアップグレードする必要があるのでしょうか?