1 réponse
Bonjour,
L'erreur affichée provient probablement du fait que comme std::vector est une classe template, il faut obligatoirement spécifier son type template lors de la construction, comme ceci:
std::vector<double>( args... )
Il me semble également voir un autre problème ensuite sur les shared_ptr : tu dois passer au constructeur de shared_ptr un objet alloué dynamiquement avec new, comme ceci :
boost::shared_ptr<dVec> x_arr(new std::vector<double>(xx, xx + 21));
ainsi quand tu fera une copie ou une affectation du shared_ptr, le vecteur ne sera pas copié mais un compteur de références interne sera incrémenté, ce qui permet d'effectuer le delete automatiquement dès que le dernier shared_ptr est détruit (donc plus de risque de memory leak :))
J'espere que ça aura résolu ton problème.
Jonathan
L'erreur affichée provient probablement du fait que comme std::vector est une classe template, il faut obligatoirement spécifier son type template lors de la construction, comme ceci:
std::vector<double>( args... )
Il me semble également voir un autre problème ensuite sur les shared_ptr : tu dois passer au constructeur de shared_ptr un objet alloué dynamiquement avec new, comme ceci :
boost::shared_ptr<dVec> x_arr(new std::vector<double>(xx, xx + 21));
ainsi quand tu fera une copie ou une affectation du shared_ptr, le vecteur ne sera pas copié mais un compteur de références interne sera incrémenté, ce qui permet d'effectuer le delete automatiquement dès que le dernier shared_ptr est détruit (donc plus de risque de memory leak :))
J'espere que ça aura résolu ton problème.
Jonathan