Есть ли способ получить текущее имя функции в C++? Я хочу отслеживать порядок заказов на некоторые функции. Есть что-то вроде __FILE__
или __LINE__
?Имя текущей функции C++ как строка
Спасибо!
Есть ли способ получить текущее имя функции в C++? Я хочу отслеживать порядок заказов на некоторые функции. Есть что-то вроде __FILE__
или __LINE__
?Имя текущей функции C++ как строка
Спасибо!
Использование
__FUNCTION__
//or
__PRETTY_FUNCTION__
Или, если вы хотите, чтобы быть совместимым с скоро-к-(SIC) C++ 0x стандарт, использовать __func__
, если ваш компилятор поддерживает его (GCC делает), который будет быть портативным.
Или вы хотите быть совместимы со стандартом _current_: '#ifdef MYFN',' #undef MYFN', '# endif',' #define MYFN nameofmyfunction' перед каждой функцией, которую вы пишете :-) – paxdiablo
Спасибо, это работает :) Это очень полезно для функций рендеринга, которые нельзя отлаживать с помощью контрольных точек – Felics
Совместим ли этот макрос с компиляторами, отличными от GCC? – Sampath
@Sampath, поскольку он не является стандартным, для этого нет никакой гарантии, но он указан, например, в msdn docs для компилятора Microsoft. Поэтому я предполагаю, что он поддерживается большинством компиляторов. Однако использование __func__ может быть лучше, поскольку этот макрос определен в стандарте и должен поддерживаться повсеместно. – Vladimir