Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Альтернатива макросу __FUNCSIG__

11K
16 февраля 2007 года
_io_lock
73 / / 05.10.2006
Народ, помогите пожалуйста. Пишу я на gcc (mingw 3.4) код для ведения лога, и возникла такая проблема: в лог неплохо бы выводить сигнатуру функции, вызвавшей функцию добавления строки в лог.
Раньше, когда я писал на msvc и решал подобную проблему, я использовал макрос __FUNCSIG__. Когда начал переносить свой код на gcc, он мне матюкнулся, что, мол unknown identifier __FUNCSIG__; я поменял его на __FUNCTION__, но проблема в том, что он правильно работает только в функциях, а в методах классов... например, в SomeClass::SomeMethod он раскрывается в "SomeMethod", а по идее должен в "SomeClass::SomeMethod".
Так вот, собственно вопрос :o.
Есть ли что-то подобное макросу __FUNCSIG__ в стандарте C++, а точнее в gcc?
Буду рад любым комментариям по теме, заранее спасибо.
3
16 февраля 2007 года
Green
4.8K / / 20.01.2000
В стандарте точно нет.
Честно говоря, проблема мне кажется высосанной из пальца.
Что мешает ручками написать сигнатуру?
361
16 февраля 2007 года
Odissey_
661 / / 19.09.2006
В gcc есть __PRETTY_FUNCTION__.
Если не поможе, то можно попробывать использовать typeid().name. Правда у него есть некоторые ограничения.
11K
16 февраля 2007 года
_io_lock
73 / / 05.10.2006
2Green: Нет, не всё так просто:D. Фишка в том, что сей макрос должен работать в любой функции, а не в какой-то известной зараннее. А ручками писать для каждой функции - это я с ума сойду :eek:

2Odissey_: Спасибо, __PRETTY_FUNCTION__ - именно то, что мне нужно!
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог