2010-08-11 2 views

ответ

11

Использование

__FUNCTION__ 
//or 
__PRETTY_FUNCTION__ 
+0

Спасибо, это работает :) Это очень полезно для функций рендеринга, которые нельзя отлаживать с помощью контрольных точек – Felics

+0

Совместим ли этот макрос с компиляторами, отличными от GCC? – Sampath

+1

@Sampath, поскольку он не является стандартным, для этого нет никакой гарантии, но он указан, например, в msdn docs для компилятора Microsoft. Поэтому я предполагаю, что он поддерживается большинством компиляторов. Однако использование __func__ может быть лучше, поскольку этот макрос определен в стандарте и должен поддерживаться повсеместно. – Vladimir

10

Или, если вы хотите, чтобы быть совместимым с скоро-к-(SIC) C++ 0x стандарт, использовать __func__, если ваш компилятор поддерживает его (GCC делает), который будет быть портативным.

+2

Или вы хотите быть совместимы со стандартом _current_: '#ifdef MYFN',' #undef MYFN', '# endif',' #define MYFN nameofmyfunction' перед каждой функцией, которую вы пишете :-) – paxdiablo

Смежные вопросы