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.
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?
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.