typedef vector modèle
Je vais essayer d'ajouter un peu de définition de type de ma classe, mais le compilateur signale une syntaxe erron sur le code suivant:
template<class T>
class MyClass{
typedef std::vector<T> storageType; //this is fine
typedef storageType::iterator iterator; //the error is here
mais la prochaine ne fonctionne pas trop:
typedef std::vector<T>::iterator iterator;
Je cherchais les réponses sur beaucoup de forum mais je ne trouve pas une solution ou une solution de contournement pour ce. Merci pour votre aide!
OriginalL'auteur Dénes Ákos Nagy | 2012-10-19
Vous devez vous connecter pour publier un commentaire.
Il vous manque un
typename
:Il y a beaucoup de question similaire. E. g. jetez un oeil à ce qui suit:
OriginalL'auteur nosid
std::vector<T>::iterator
est un type de charge de sorte que vous devez ajouter le nom avant.std::vector<T>
n'est pas un type de charge. C'est le type peut être déterminé sans l'instanciation des modèles. Pour déterminer le type destd::vector<T>::iterator
vous devez instancierstd::vector<T>
.OriginalL'auteur Dirk Holsopple