Рассмотрим код ниже:
#include <iostream>
void test_function(const char* caller_name = __FUNCTION__) {
std::cout << caller_name << " ";
}
void func1() {
test_function();
}
int main() {
test_function();
func1();
}
Код выше ничего не печатает. Есть ли способ, которым test_function выводит имя функции, из которой она вызывается?
Например: для этого случая вывод должен быть следующим: main func1
Я понимаю, что желаемый результат может быть достигнут, если мы сделаем аргумент test_function, не по умолчанию и передадим __FUNCTION__ из функции вызывающей стороны.
Этого можно достичь и с помощью макроса, но это не то, что я ищу.