Если моя функция:
void foo(bool bar)
{
qDebug() << __PRETTY_FUNCTION__;
}
foo(getBool());
будет выводить "void foo(bool bar)"
Я хотел бы получить более точный результат, чтобы:
foo(getBool());
будет выводить "getBool()"
Каков наилучший способ сделать это?
Требование заключается в том, что foo(boolbar)
будет помещен в динамическую библиотеку, как таковую:
#include "Custom Library/output_tools.h"
в проекты.
Почему бы просто не использовать макрос для этого?
#define printBoolFunctionAndResult(bar) qDebug() << #bar << " " << bar;
При этом используется оператор stringize для преобразования аргументов макроса в строку, и сначала печатается аргумент напрямую, а затем оценивается его.
Вот рабочий пример с std::cout
: https://repl.it/repls/IntelligentGrayGermanpinscher
Других решений пока нет …