" __FUNCTION__
" поддерживается и MSVC и GCC и должен дать Вам информацию, в которой Вы нуждаетесь.
При использовании gcc, можно найти [еще 110] к симпатии.
Я вижу от Вашего примера, что Вы используете Qt. В этом случае Ваш лучший выбор состоит в том, чтобы использовать Q_FUNC_INFO
найденный в <QGlobal>
. Вот описание:
Расширяется до строки, которые описывают функцию, в которой находится макрос. Как эта строка взгляды более конкретно является зависимым компилятора. С GNU GCC это - обычно функциональная подпись, в то время как с другими компиляторами это мог бы быть номер строки и номер столбца.
При проверке повышения существует макро-BOOST_CURRENT_FUNCTION, который является портативным через платформы. В стандарте C99 существует переменная компилятора __func__
, который имеет желаемый эффект. Я верю, был принят в C++ 0x стандарт. Разумное количество компиляторов будет уже поддерживать это.
__func__
c99 (который в свою очередь означает, что не мог бы работать с Visual Studio - но эй это стандартно: o))
__FUNCTION__
работы в значительной степени везде
__PRETTY_FUNCTION__
являются конкретной гну и возвращают полное полностью определенное имя с (пространства имен?), имя класса, returntype, functionname, parameterslist