如何制作std :: array?

时间:2014-03-05 17:58:31

标签: c++ arrays c++11

由于std :: array没有显式构造函数,我的编译器不支持初始化列表。我想用一个像

这样的函数创建一个std :: array
template<class T, int N>
std::array<T, N> makeArray(T const& t0 = 0, T const& t1 = 0, T const& t2 = 0,
                           T const& t3 = 0, T const& t4 = 0, T const& t5 = 0,
                           T const& t6 = 0, T const& t7 = 0, T const& t8 = 0)
{
 ...
}

只列出9个元素,可以更多。如何实现这个功能?

1 个答案:

答案 0 :(得分:4)

一般来说,实现make_array是一个坏主意,但是从一组值中创建std::array的方法是使用 aggregate-initialization

std::array<int,5> a = { 1, 2, 3, 4, 5 };

请注意,它不是std::initializer_list<int>