除非我弄错了,应该可以通过以下方式创建 std:array:
std::array<std::string, 2> strings = { "a", "b" };
std::array<std::string, 2> strings({ "a", "b" });
然而,使用GCC 4.6.1,我无法让这些任何一个起作用。编译器只是简单地说:
expected primary-expression before ',' token
然而使用初始化列表初始化std::vector却可以正常工作。那到底是哪个呢?我认为std::array应该接受初始化列表是我的错觉吗,还是GNU标准C++库团队出了差错?
std::string
。你尝试过用std::string()
包装字符串字面量吗? - John Chadwick