Bonjour Je me suis efforcé de construire une classe d'assistance pour initialiser un valarray stl. Ce que je voudrais est de faire ce qui suit:initialiser stl valarray en une ligne
std::valarray<float> vec(3);
vlist_of<float>(vec)(2)(3)(5);
je peux simplement initialiser les vecteurs à l'exécution en utilisant seulement une instruction de commande de ligne. Pour faire ce qui suit je tryed la structure suivante:
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;
}
};
cette structure fonctionne si je fais ce qui suit:
vlist_of<float> tmp(vec);tmp(2)(3)(4);
Est-il possible que je demande?
Je ne comprends pas ce genre de réponse que vous recherchez. Par ailleurs, qu'est-ce que '(* this) (data);' for? : v –
@ Magtheridon96 Je pense qu'il cherche l'initialisation de style 'Boost Assign' pour valarrays – sehe