2
안녕하세요. stl valarray를 초기화하는 도우미 클래스를 작성하도록 wannted되었습니다. 내가 원하는 것은 다음과 같습니다 :한 행에 stl valarray를 초기화하십시오.
std::valarray<float> vec(3);
vlist_of<float>(vec)(2)(3)(5);
그래서 난 단지 하나의 행 명령문을 사용하여 런타임에 벡터를 초기화 할 수 있습니다.
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;
}
};
이 구조가 작동 : 나는 다음과 같은 구조를 tryed 한 다음 작업을 수행하는 ?
난 당신이 찾고있는 해답의 종류를 이해하지 않습니다
가 전체 샘플을 참조하십시오. 그런데'(* this) (data);는 무엇입니까? : –@ Magtheridon96 그는 부스터 할당 스타일 어레이 valarrays에 대한 – sehe