2016-07-06 54 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 –