2
你好,我希望建立一个辅助类来初始化stl valarray。我想要做的是:初始化stl valarray在一行
std::valarray<float> vec(3);
vlist_of<float>(vec)(2)(3)(5);
所以我可以只使用一行命令语句在运行时初始化向量。 换做我已经tryed以下结构如下:
vlist_of<float> tmp(vec);tmp(2)(3)(4);
是否有可能什么,我问:如果我做了以下
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;
}
};
这种结构的工作原理?
我不明白你在找什么样的回答了。顺便说一下,'(* this)(data);'为什么? :v – 2013-03-19 10:49:29
@ Magtheridon96我认为他正在寻找valarrays的'Boost Assign'风格初始化 – sehe 2013-03-19 11:13:09