Trừ khi tôi nhầm lẫn, chúng ta có thể để tạo ra một std: mảng trong các cách sau:Sử dụng std :: mảng với khởi liệt kê
std::array<std::string, 2> strings = { "a", "b" };
std::array<std::string, 2> strings({ "a", "b" });
Tuy nhiên, sử dụng GCC 4.6.1 Tôi không thể có được bất kỳ cái nào trong số này đều hoạt động. Trình biên dịch chỉ cần nói:
expected primary-expression before ',' token
và danh sách khởi tạo vẫn hoạt động tốt với std :: vector. Vì vậy, đó là nó? Tôi có nhầm lẫn với suy nghĩ std :: mảng nên chấp nhận danh sách khởi tạo, hoặc có nhóm GNU C++ tiêu chuẩn thư viện goofed?
Đó là clang bị rơi ... – Dani
Tôi không chắc liệu điều này có hoạt động hay không (nhưng tôi không cập nhật thông tin 0x) nhưng lỗi hay không, tôi nghĩ đó là vì bạn đang sử dụng 'std: : chuỗi' với chuỗi ký tự. Bạn đã thử gói các chuỗi ký tự bằng 'std :: string()' chưa? –
@Chris: Tính năng này phù hợp với tôi với gcc 4.6.1 trên Mac OSX 10.6. Bạn đang sử dụng các tùy chọn trình biên dịch nào? – juanchopanza