你好我想建立一个帮助类来初始化一个 stl valarray。我想做的是执行以下操作:
std::valarray<float> vec(3);
vlist_of<float>(vec)(2)(3)(5);
所以我可以在运行时只使用一个行命令语句来初始化向量。为了执行以下操作,我尝试了以下结构:
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);
我要问的可能吗?