1

サイズ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);

これにより、すべてのオブジェクトが {init1,init2} で初期化されるN non_std_conの配列が構築されます。

お時間をいただきありがとうございます

4

1 に答える 1