2013-01-23 19 views
3

我寫C++應用程序應當編譯在Windows和GCC上Linux.I都使用MS C++的std ::列表迭代器關鍵字寫了一環上通過Windows系統的std ::列表,它迭代:使用「自動」與GCC

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

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

} 

它工作正常,但與GCC 「自動」 編譯時它就會無法識別:

Unexptected令牌 「自動」(在NetBeans IDE)

所以我固定它定義迭代器「明確:

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

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

} 

我的版本的GCC 4.7.2是

這是否意味着GCC不支持自動關鍵字?可能是我需要升級編譯器?

+1

您使用的是哪個版本的GCC? –

+1

這取決於您使用的GCC版本 – piwi

+6

您使用的是哪個版本的gcc?你是用'-std = C++ 11'編譯的嗎? –

回答

6

Here是GCC C++ 11支撐的鏈接。您還需要在命令行中添加-std = C++ 11。

+0

但如何自帶Windows上我不使用任何11和「汽車」的作品? –

+5

@MichaelIV他們是不同的編譯器... –