2015-01-13 20 views
5

quando provo a inizializzare un vettore di int in C++, ottengo sempre il "previsto"; alla fine della dichiarazione "errore.previsto ';' alla fine della dichiarazione/vector/C++

ho usato il codice originale da C++ Primer

vector<int> v{1,2,3,4,5,6,7,8,9}; 

e

$ g++ -o test test.cpp 

Penso che questa sia una domanda stupida a chiedere, ma sono sicuro che ci sia un ";" .. e non riesco a cercare una risposta .. Grazie.

+3

L'inizializzazione del brace è stata aggiunta in C++ 11. Probabilmente devi istruire il compilatore affinché funzioni in modalità C++ 11. –

risposta

7

g++ assume C++ 03 per impostazione predefinita e la sintassi si sta tentando di utilizzare è venuto in C++ 11. Modificare la riga di compilazione a:

$ g++ -std=c++11 -o test test.cpp 

Oppure, come io personalmente preferisco:

$ g++ -Wall -Werror -pedantic -std=c++1y -o test test.cpp 

:)

Nota: se devi usare c++0x, c++11, o c++1y (ed eventualmente c++14) dipende principalmente dalla versione del compilatore, in quanto sono stati introdotti in successione.

3

Il compilatore per impostazione predefinita non supporta l'inizializzazione ; questo è stato aggiunto in C++ 11.

C'è probabilmente un argomento della riga di comando è possibile utilizzare nel vostro compilatore, qualcosa sulla falsariga di

-std=c++11

Problemi correlati