Quand je lance le code suivant sur ubuntu (gcc (Ubuntu 5.4.0-6ubuntu1 ~ 16.04.4)):Pourquoi le code suivant fonctionne-t-il sur ide en ligne (gcc 7.2.0) mais donne une erreur sur ubuntu?
#include<iostream>
#include<vector>
#include<list>
using namespace std;
int main(){
vector <int> v;
v.push_back(1);
v.push_back(2);
v.push_back(3);
v.push_back(4);
v.push_back(5);
list<int> temp;
for(auto i:v){
cout<<i<<" ";
temp.push_back(i);
}
for(auto i:temp){
cout<<i<<" ";
}
}
Je reçois les erreurs suivantes:
try.cpp: In function ‘int main()’:
try.cpp:13:10: error: ‘i’ does not name a type
for(auto i:v){
^
try.cpp:17:1: error: expected ‘;’ before ‘for’
for(auto i:temp){
^
try.cpp:17:1: error: expected primary-expression before ‘for’
try.cpp:17:1: error: expected ‘;’ before ‘for’
try.cpp:17:1: error: expected primary-expression before ‘for’
try.cpp:17:1: error: expected ‘)’ before ‘for’
try.cpp:17:10: error: ‘i’ does not name a type
for(auto i:temp){
^
try.cpp:20:1: error: expected ‘;’ before ‘}’ token
}
^
try.cpp:20:1: error: expected primary-expression before ‘}’ token
try.cpp:20:1: error: expected ‘;’ before ‘}’ token
try.cpp:20:1: error: expected primary-expression before ‘}’ token
try.cpp:20:1: error: expected ‘)’ before ‘}’ token
try.cpp:20:1: error: expected primary-expression before ‘}’ token
Mais quand je cours le code sur l'ide en ligne je fonctionne bien.
Quel est le problème avec le code?
Le lien pour le code sur ligne ide: No errors
Comment compilez-vous sur Ubuntu? –
@MichaelAlbers 'g ++ -o try try.cpp' – user7098526
Vous ne dites pas quelle version de gcc vous utilisez sur Ubuntu (' gcc --version'), mais je parie que c'est assez vieux pour qu'il ne le soit pas supporte les fonctionnalités C++ 11 par défaut. Essayez d'utiliser l'option '-std = gnu ++ 11'. –