Paramètre template et itérateur de set.
Bonjour,
Dans l'initialisation de ma première boucle "for" (et pas foreach).
Le compilateur m'indique :
Code:
1 2
|
expected ';' before 'kA' |
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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
template< class C >
QSet< const QPair< const C*, const C* > > Quadtree< C >::couples() const
{
QSet< const Quadtree* > kLeaves = leaves();
QSet< QPair< const C*, const C* > > kCouples;
foreach(const Quadtree* pkLeaf, kLeaves)
{
const QSet< const C* >& rkItems = pkLeaf->items();
for(QSet< const C* >::ConstIterator kA = rkItems.begin();
kA != rkItems.end() && kA + 1 != rkItems.end();
++kA)
{
for(QSet< const C* >::ConstIterator kB = kA + 1;
kB != rkItems.end();
++kB)
{
// No coupling with itself.
Q_ASSERT(*kA != *kB);
// The address comparaison, ensure that a pair is always stored the same way.
// Permutation are not possible.
if(*kA < *kB)
kCouples.insert(QPair< const C*, const C* >(*kA, *kB));
else
kCouples.insert(QPair< const C*, const C* >(*kB, *kA));
}
}
}
return kCouples;
} |
PS : Lorsque je retire la ligne qui pose problème, ça compile normalement.