creer une macro paramètrée
Bonjour à tous,
Je bloque sur un problème dont je ne suis pas sûr qu'une solution existe.
Voilà, nous avons des classes générée automatiquement avec des conteneurs et des itérateurs spécifiques. Afin de parcourir tous les éléments, nous avons créé une macro qui prend en paramètre le nom de la classe, le nom du conteneur et qui va appeler un visiteur :
Code:
1 2 3 4 5 6 7 8 9
|
#define ITERATE_OVER_COLLECTION(_className, _collectionName, _featureName, _value) \
{ \
_className::_collectionName##_iterator it = _value->_collectionName().begin(), ite = _value->_collectionName().end(); \
for(;it!=ite;++it) \
{ \
it->_featureName()->acceptVisitor(this); \
} \
} |
J'aimerais maintenant pouvoir modifier le code acceptVisitor() par d'autres méthodes. Par exemple pour supprimer un élément de la collection.
Code:
1 2 3 4 5 6 7 8
|
...
if (_value == (&(it->_FeatureName.get())) )\
{\
_value->_featureName().erase(it);\
it->_featureName()->acceptVisitor(this); \
}\ |
Est-il possible de paramétrer une macro pour faire cela ? A moins que notre approche soit complètement bancale et qu'il existe des techniques appropriée en c++ ?
++,
Nicolas.