Как правило, этого достаточно для того, чтобы сопровождающие следовали шаблону.
ю :
class Foo {
public:
void log() { }
void a() {
log();
}
void b() {
log();
}
};
Есть ли способ, которым я могу иметь каждый методFoo
, вызовlog()
, но без меня, чтобы явно ввести log () в качестве первой строки каждой функции? Я хочу сделать это, чтобы я мог добавить поведение к каждой функции без необходимости проходить через каждую функцию и удостовериться, что вызов сделан, а также, чтобы при добавлении новых функций код автоматически добавлялся ...
Это вообще возможно? Я не могу себе представить, как это сделать с помощью макросов, поэтому не знаю, с чего начать ... Единственный способ, о котором я до сих пор думал, - это добавить «шаг перед сборкой», чтобы перед компиляцией я сканировал файл и редактировать исходный код, но это не кажется очень умным ....
РЕДАКТИРОВАТЬ: Просто чтобы уточнить - я не хочу, чтобы log () вызывал себя, очевидно. Это не должно быть частью класса.
РЕДАКТИРОВАТЬ: Я бы предпочел использовать методы, которые будут работать кроссплатформенный, и использовать только STL.