axe_lankaster13
@axe_lankaster13
C++ разраб с большими планами

Как определить класс, которому принадлежит вызываемый метод, из C++ кода?

Знаю, что для определения названия функции в C++ есть __func__, допустим, при вызове из функции myBeautifulFoo возвращающий "myBeautifulFoo", но если myBeautifulFoo является методом класса MyBeautifulClass, то __func__ также вернёт myBeautifulFoo, хотя, хотелось бы, чтобы __func__ вернул что-то вроде "MyBeautifulClass::myBeautifulFoo".
Так вот собственно вопрос, как получить название класса вызываемого метода ?
  • Вопрос задан
  • 125 просмотров
Решения вопроса 2
Adamos
@Adamos
В откомпилированном коде нет никаких названий классов.
В С++ нет рефлексии. И не надо, кстати.
Проверить, что класс является MyBeautifulClass или его наследником, можно при помощи dynamic_cast. А если вам нужно другое - берите другой язык и не навлекайте на себя гнев св. Барбары.
Ответ написан
wataru
@wataru
Разработчик на С++, экс-олимпиадник.
Попробуйте __pretty_function__ в gcc и __FUNCSIG__ в visual studio.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы