Erro de compilação, g ++ e c ++ 11 [fechado]

0

Estou tentando compilar este código via g ++,

#include <iostream>
#include <set>
using namespace std;

std::set<int> s;

int main(){
for(int i=0;i<10;i++) s.insert(i);

for(auto target: s){
cout<<target<<endl;
}
return 0;
}

mas o g ++ 4.8 me fornece este erro:

ali@Melkor ~/Desktop/Project $ g++ a.cpp
a.cpp: In function ‘int main()’:
a.cpp:10:10: error: ‘target’ does not name a type
 for(auto target: s){
          ^
a.cpp:14:1: error: expected ‘;’ before ‘return’
 return 0;
 ^
a.cpp:14:1: error: expected primary-expression before ‘return’
a.cpp:14:1: error: expected ‘;’ before ‘return’
a.cpp:14:1: error: expected primary-expression before ‘return’
a.cpp:14:1: error: expected ‘)’ before ‘return’
ali@Melkor ~/Desktop/Project $ 

Há algo de errado com o meu código?

    
por lino 09.06.2015 / 09:22

1 resposta

2

Não há nada errado com seu código, mas o especificador auto está presente desde a versão c ++ 11 do padrão da linguagem de programação C ++.

Você deve usar

g++ -std=c++11 a.cpp

para compilar seu código.

    
por acesargl 09.06.2015 / 12:15