Есть ли макрос C ++, который получает текущее пространство имен и имя функции? Пример:
namespace foo {
namespace bar {
void baz(int i, double d) {
std::cout << MACRO << std::endl;
}
}
}
выведет foo :: bar :: baz
. Я знаю __ FUNCTION __
, но он не дает пространства имен. А BOOST_CURRENT_FUNCTION
дает всю подпись, включая аргументы и тип возвращаемого значения:
void foo::bar::baz(int, double)
Возможно, можно написать макрос, который извлекает пространство имен и имя функции из BOOST_CURRENT_FUNCTION
?
Я хочу, чтобы это было в целях ведения журнала, чтобы получить строку журнала вроде
foo::bar::baz -- blah logging message blah