|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Futur Membre du Club
![]() Inscription : avril 2010 Messages : 96 ![]() |
Bonjour,
Dans l'initialisation de ma première boucle "for" (et pas foreach). Le compilateur m'indique : J'ai essayé de retirer l'ensemble du code et de garder uniquement la ligne qui pose problème et j'obtiens toujours la même erreur. Quelqu'un aurait une idée ? Code :
|
||
|
|
00
|
|
|
#2 |
|
Membre chevronné
![]() ![]() Inscription : décembre 2008 Messages : 490 ![]() |
Peut-être typename QSet< const C* >::ConstIterator ?
|
|
|
00
|
|
|
#3 |
|
Membre Expert
![]() Pierre Ingénieur développement logiciels Inscription : juin 2007 Messages : 1 179 ![]() |
C'est quasiment certainement ça, puisque C est un paramètre template, et qu'il est transmis à une autre template.
__________________
Mes principes de bases du codeur qui veut pouvoir dormir:
|
|
00
|
|
|
#4 |
|
Futur Membre du Club
![]() Inscription : avril 2010 Messages : 96 ![]() |
Merci beaucoup,
C'était bien ça. Je pense comprendre pourquoi il est nécéssaire de rajouter typename, mais une explication détaillée serait la bienvenue. (Ou peut être une voie sur laquelle chercher). Merci. |
|
|
00
|
|
|
#5 | ||||
|
Membre Expert
![]() Pierre Ingénieur développement logiciels Inscription : juin 2007 Messages : 1 179 ![]() |
il faut un typename chaque fois que tu veux un type contenu dans un parametre template
Soit la fonction template <typename T> T::value_t incremente(T::base_t t){return t+1;}. C'est joli, c'est logique, et ca suppose que T::value_t soit un type (pour lequel t+1 existe) Nourrissons le. Code :
ceci est destiné à supprimer les const. (assez mal, c'est juste pour l'exemple) On peut penser appeler int i =incremente< unconst<int> >(2);. mais suppose qu'un petit malin écrive: Code :
comment t'en sortirai tu avec la fonction incremente< unconst<void> >, maintenant que base_t et value_t ne sont meme plus des types? typename sert à dire au compileur "Je pense que ceci est un type, tu es autorisé à le vérifier." Ca, c'était ma petite explication. Pour plus de détails, il me semble que la faq contient une entrée sur le sujet.
__________________
Mes principes de bases du codeur qui veut pouvoir dormir:
|
||||
|
00
|
Copyright © 2000-2013 - www.developpez.com