我想用没有标准构造函数的对象填充大小为N的 std::array。
std::array<non_std_con,N> myArray;
(std::array<kissfft<float>, 64>
具体来说,就我而言)
这会导致错误
错误:使用已删除的函数...标准构造函数
设置
您可以使用初始化器列表填充数组:
std::array<non_std_con,N> myArray{non_std_con{init1,init2},non_std_con{init1,init2},...}
初始化列表需要N个对象。
您可以使用参数包构建数组:
template <class... Params>
auto constexpr build_array(Params... params)
{
std::array<non_std_con, sizeof...(params)> myArray= {params...};
return myArray;
}
问题
有没有办法反过来使用它并从单个参数构建参数包:
std::array<non_std_con,N> buildArray(inti1,init2);
这将构建一个包含N 个 non_std_con的数组,其中每个对象都使用 {init1,init2} 进行初始化
感谢您的时间