【发布时间】:2021-03-19 17:17:44
【问题描述】:
请参阅此示例:https://godbolt.org/z/5PqYWP
为什么这个对数组不能像对向量一样初始化?
#include <vector>
#include <array>
int main()
{
std::vector<std::pair<int,int>> v{{1,2},{3,4},{5,6}}; // succeeds
std::array <std::pair<int,int>, 3> a{{1,2},{3,4},{5,6}}; // fails to compile
}
【问题讨论】:
-
今天询问了very similar question,但使用
struct而不是std::pair。但是这里的答案与这里的答案几乎相同,恕我直言。 (或者可能不是——那个是关于赋值而不是构造函数?) -
@AdrianMole 但使用
struct而不是std::pair我希望std::pair 实际上是一个(模板)struct。 ;-) -
@Scheff 我不能不同意(即使我愿意,但我不同意)。
标签: c++ stdarray aggregate-initialization