Есть ли макрос С++, который получает текущее пространство имен и имя функции? Пример:
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