Макрос для получения текущего пространства имен и имени функции (но не полной подписи)?

Существует ли макрос 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

Ответы на вопрос(1)

Ваш ответ на вопрос