2015-01-13 16 views
5

khi tôi cố gắng khởi tạo một vectơ int trong C++, tôi luôn nhận được "mong đợi"; ở cuối khai báo "lỗi.dự kiến ​​';' ở cuối khai báo/vector/C++

tôi đã sử dụng mã gốc từ C++ Primer

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

$ g++ -o test test.cpp 

Tôi nghĩ rằng đây là một câu hỏi ngớ ngẩn để hỏi, nhưng tôi chắc chắn rằng có một ";" .. và không thể tìm kiếm câu trả lời .. Cảm ơn.

+3

Khởi tạo cú đúp đã được thêm vào C++ 11. Bạn có thể phải hướng dẫn trình biên dịch của bạn hoạt động ở chế độ C++ 11. –

Trả lời

7

g++ giả C++ 03 theo mặc định, và cú pháp bạn đang cố gắng sử dụng đến trong C++ 11. Thay đổi dòng biên soạn để:

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

Hoặc, như cá nhân tôi muốn:

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

:)

Note: cho dù bạn muốn sử dụng c++0x, c++11, hoặc c++1y (và có thể là c++14) phụ thuộc chủ yếu vào phiên bản trình biên dịch, vì chúng đã được giới thiệu thành công.

3

Trình biên dịch của bạn theo mặc định không hỗ trợ brace initialisation; điều này đã được thêm vào trong C++ 11.

Có lẽ một đối số dòng lệnh, bạn có thể sử dụng trong các trình biên dịch của bạn, một cái gì đó dọc theo dòng của

-std=c++11

Các vấn đề liên quan