J'ai :
class Foo {
public:
void log() { }
void a() {
log();
}
void b() {
log();
}
};
Existe-t-il un moyen d'avoir chaque méthode de Foo
appel log()
mais sans que je doive explicitement taper log() comme première ligne de chaque fonction ? Je veux faire cela, afin de pouvoir ajouter un comportement à chaque fonction sans devoir passer par chaque fonction et m'assurer que l'appel est fait, et aussi pour que lorsque j'ajoute de nouvelles fonctions, le code soit automatiquement ajouté...
Est-ce possible ? Je n'arrive pas à imaginer comment le faire avec des macros, donc je ne sais pas par où commencer... Le seul moyen auquel j'ai pensé jusqu'à présent est d'ajouter une "étape de pré-construction", de sorte qu'avant de compiler, je scanne le fichier et modifie le code source, mais cela ne semble pas très intelligent.....
EDIT : Juste pour clarifier - je ne veux pas que log() s'appelle lui-même évidemment. Il n'a pas besoin de faire partie de la classe.
EDIT : Je préférerais utiliser des méthodes qui fonctionnent sur plusieurs plateformes, et n'utiliser que le stl.