|
|
|
|
Salut,
J'ai une classe template (disons A<T,U>) qui contient un vector de la STL où sont stockés des pointeurs sur des instances d'une autre classe template (disons B<U>).
J'écris un accesseur qui devrait me renvoyer l'itérateur sur le début de ce vector mais le compilo ne veut pas :
std::vector<B<U>*>::iterator begin();
Oui la fonction begin() s'applique à un objet, car c'est une méthode de l'objet std::vector :
std::vector<B<U>*> v; std::vector<B<U>*>::iterator vit = v.begin(); Attention si B et/ou U sont des types template, le type std::vector<B<U>*> est indéterminé à ce stade et on ne peut accéder aux champs iterator, const_iterator,... On règle alors le problème avec un typename : typename std::vector<B<U>*>::iterator vit = v.begin(); Bonne chance |
Merci pour ta réponse.
|