2016-07-06 9 views
0

私はVS 2008ループの範囲:VS 2008はそれをサポートしていませんか?

int main(){ 
for(int n: {0, 1, 2, 3, 4, 5}) // the initializer may be a braced-init-list 
     std::cout << n << ' '; 

return 0; 
} 

を以下のコードを実行しようとしています。しかし、コンパイラは私に次の警告与える:

エラーC2143:構文エラー:見つからない「」 '前に: '

VS 2008はループの範囲をサポートしていないようです。本当? Thx

+1

C++ 11でコンパイルしてもよろしいですか? –

+0

@BatCoder:C++ 11は2011年、VS2008は2008年を指していると私は確信しています。 – MSalters

答えて

8

範囲forループと、使用している初期化子リスト表記は、どちらもC++ 11標準で導入されました。

範囲forのループをサポートする最も古いVCコンパイラはVC2013ですが、そのコンパイラはC++ 11標準を完全に実装していない(または実装すると主張しています)。 (例えば、あなたが持っている方法でイニシャライザリストを使用することはできません)

あなたはVC2015にアップグレードするのが最善です。

+2

また、VC2008で動かない場合は、BOOST_FOREACHを使用してください –

関連する問題