Как определить класс, которому принадлежит вызываемый метод, из C++ кода?
Знаю, что для определения названия функции в C++ есть __func__, допустим, при вызове из функции myBeautifulFoo возвращающий "myBeautifulFoo", но если myBeautifulFoo является методом класса MyBeautifulClass, то __func__ также вернёт myBeautifulFoo, хотя, хотелось бы, чтобы __func__ вернул что-то вроде "MyBeautifulClass::myBeautifulFoo".
Так вот собственно вопрос, как получить название класса вызываемого метода ?
В откомпилированном коде нет никаких названий классов.
В С++ нет рефлексии. И не надо, кстати.
Проверить, что класс является MyBeautifulClass или его наследником, можно при помощи dynamic_cast. А если вам нужно другое - берите другой язык и не навлекайте на себя гнев св. Барбары.
В одной компании, в которой работал, в сборнике всяких утилит была функция, которая писала логи с выводом названия класса и функции в формате "класс::функция: лог", причём, не надо было ручками писать название класса, которое нужно выводить - так что всё-таки это можно сделать)
Павел Матвеев, "это возможно" - по своей сути верно, но не имеет никакого отношения к стандарту C++ и к самому языку.
Твой вопрос нужно исправить, изменив его теги. Я предложил верные.
Павел Матвеев, давай подкину тебе еще одно интересное решение.
Думаю, оно тебе понравится больше всего т.к. не зависит от выбранного тобой транслятора.