こんにちは、stl valarray を初期化するヘルパー クラスを作成したいと思います。私がしたいのは、次のことです。
std::valarray<float> vec(3);
vlist_of<float>(vec)(2)(3)(5);
そのため、行コマンド ステートメントを 1 つだけ使用して、実行時にベクトルを初期化できます。次のことを行うために、次の構造を試しました。
template <typename T>
struct vlist_of {
std::valarray<T>& data;
int i;
vlist_of(std::valarray<T>& _data):data(_data),i(0) {
(*this)(data);
}
vlist_of& operator()(std::valarray<T>& data){return *this;}
vlist_of& operator()(const T& t) {
data [i]=t;
i++;
return *this;
}
};
この構造は、次のようにすると機能します。
vlist_of<float> tmp(vec);tmp(2)(3)(4);
私が求めていることは可能ですか?