2015-01-13 11 views
5

私がintのベクトルをC++で初期化しようとすると、私はいつも "expected ';'宣言の終わりに "エラー。私はC++入門が必要です ';'宣言/ベクトル/ C++の末尾で

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

$ g++ -o test test.cpp 

から元のコードを使用

私は、これは聞いて愚かな質問だと思うが、私はそこにあることを確信している「は、」.. 。答えを検索することはできません。 ありがとうございました。

+3

ブレースの初期化がC++ 11で追加されました。おそらくC++ 11モードで動作するようにコンパイラに指示する必要があります。 –

答えて

7

g++の線に沿って何かは、デフォルトではC++ 03を想定して、そしてあなたが使用しようとしている構文が来ましたC++では11。私は個人的に好むよう、

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

または::へのコンパイル行を変更

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

:)

:あなたはc++0xc++11、またはc++1yを使用したいかどうかを(おそらくc++14)は、コンパイラのバージョンに大きく依存しています。

3

デフォルトでコンパイラはブレースの初期化をサポートしていません。これはC++ 11で追加されました。

あなたのコンパイラで使用できるコマンドライン引数は、おそらくあります、

-std=c++11

関連する問題