Я знаю, это звучит немного странно, но это то, что я хочу сделать: допустим, у меня есть функция void f()
, и я хочу добавить трассировку для этого метода.Я хочу отследить вход этой функции и выход из нее с помощью сообщений трассировки, таких как «Введенная функция f» и «Выход из функции f».Я не хочу добавлять записи трассировки вручную для входа и выхода, поскольку я могу пропустить некоторые пути возврата.Таким образом, можно использовать шаблонную магию во время компиляции и автоматически генерировать эти строки.то есть то, чего я хочу достичь, это
void f()
{
some_template<magic>("f");
}
. Это должно добавить трассировочное сообщение "Введенная функция f" в конструкторе и "Выход из функции f" в деструкторе.Я хочу, чтобы он компилировался, и не хочу создавать объекты во время выполнения.Возможно ли это в C ++?какие-нибудь указатели, где я могу найти больше информации, если это может быть достигнуто?