由于std :: array没有显式构造函数,我的编译器不支持初始化列表。我想用一个像
这样的函数创建一个std :: arraytemplate<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个元素,可以更多。如何实现这个功能?
答案 0 :(得分:4)
一般来说,实现make_array
是一个坏主意,但是从一组值中创建std::array
的方法是使用 aggregate-initialization :
std::array<int,5> a = { 1, 2, 3, 4, 5 };
请注意,它不是std::initializer_list<int>
。