2013-01-23 1 views
3

Windows에서 MS C++을 사용하고 Linux에서 GCC를 사용하여 컴파일해야하는 C++ 응용 프로그램을 작성했습니다. std :: list를 반복하는 Windows에서 루프를 작성했습니다.GCC의 std :: list iterator에 "auto"키워드 사용하기

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

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

} 

그것은 잘 작동하지만 GCC "자동"으로 컴파일 할 때 인식되지됩니다 :

Unexptected 토큰 (넷빈즈 IDE)에서 "자동"

그래서 나는 정의를 고정 iterator "명시 적으로 :

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 그들은 다른 컴파일러입니다 ... –

관련 문제