【发布时间】:2011-08-27 20:10:49
【问题描述】:
为什么会这样:
std::pair<int, int> p = {1,2};
std::vector<std::pair<int, int>> vp = { {1,2}, {3,4} };
但这不是吗?
std::array<int, 2> a = {1,2}; // still ok
std::vector<std::array<int, 2>> va = { {1,2}, {3,4} };
使用带有-std=c++0x 的g++ 4.5.1,第二行失败并显示:
错误:无法将
‘{{1, 2}, {3, 4}}’转换为‘std::vector<std::array<int, 2u> >’
谢谢
【问题讨论】:
-
你能澄清“失败”吗? (比如给出编译器的错误?)
-
哪个操作系统?可能是编译器错误
-
@VJo @mat 添加了更多细节,谢谢!
-
我实际上怀疑 gcc 4.5.1 在这个问题上并不完全兼容。不幸的是,我不知道可以在这里提供帮助的在线编译器(ideone 使用 4.5.1)。
标签: c++ arrays c++11 initializer-list