Oui Effectivement c'est une très bonne idée.
Le problème que j'ai c'est que les méthodes liées à accept prennent les même paramètres que la macro (typiquement pour ajouter un élément il me faut un lien sur l'iterateur en cours, soit :
_className::_collectionName##_iterator it
Et donc encore une macro pour chaque visiteur.
Par contre je me suis inspiré de ton idée, j'ai ajouter une variable enum (REMOVE, ADD, MAKE_COFFEE)...)qui me permet (via un switch..case) de paramétrer ma macro.
La classe de base reste abstraite, et chaque classe dérivée à juste à switcher sur la bonne bonne valeur de l'enum.
Ce n'est pas très maintenable à mon sens, mais ça reste transparent et simple d'utilisation pour le codeur lambda qui utilisera ces visiteurs.
Thks again !
Partager