2013-01-08 12 views
5

Natknąłem się na problem z foreach qt i szablonem z wieloma parametrami szablonu.Fora Qt z szablonami z wieloma parametrami

QVector<Node<T, U> > nodes; 
... 
[append some data] 
... 
foreach(const Node<T, U>& node, nodes) { 
    ... 
} 

Dostaję taki błąd:

error: use of undeclared identifier 'Q_FOREACH' 

myślę, że to ze względu na , w szablonie, ponieważ makro Qt nie wykrywa, że ​​to wewnątrz innej deklaracji szablonu. Jak mogę to naprawić bez używania normalnego dla pętli lub C++ 11?

+0

to 'Węzeł ' klasa kontenera qt? – Zaiborg

+0

@Zaiborg Tak, jest. Zmontowałem to pytanie. – dominik

+0

Czy próbowałeś już typedef? – Ashot

Odpowiedz

10

Jeśli kompilator C++ obsługuje 11, można użyć

foreach(auto node, nodes) { ... } 

lub nawet

for(auto node: nodes) { ... } 

W przeciwnym razie, można wymusić preprocesor ignorować przecinek w szablonie tak:

Lub można użyć typedef

typedef Node<T, U> NodeTU; 
foreach(const NodeTU& node, nodes) { ... } 
Powiązane problemy