Et qu'est-ce que ça gagne par rapport à:
foreach (Node *b, db.noeuds) {
if (b->neighbors()==3) {
...
}
}
qu'on peut avoir avec du C++ + Qt avec juste une classe pour les graphes (qui doit sûrement déjà exister quelque part d'ailleurs)?
Si c'est le fait que la liste est préfiltrée avant le
foreach, ben, on peut avoir ça aussi:
template <typename T> QList<T> filterList (const QList<T> &list, bool (*filterFunc)(const T &item))
{
QList<T> result;
foreach (const T &item, list) {
if (filterFunc(item)) result.append(item);
}
return result;
}
Ou alors on peut faire un itérateur qui filtre au moment où il est parcouru aussi, mais je n'ai pas envie de le coder maintenant.
Bref, je ne vois pas qu'est-ce qui n'est pas déjà faisable en C++ dans tout ça.