Оператор typeid
в C++ возвращает объект класса std::type_info
, который может дать его текстовое имя. Однако меня просто интересует получение уникального числового идентификатора для любого полиморфного класса. (уникально в рамках одного запуска программы - не обязательно между запусками)
На практике я мог бы просто разыменовать указатель и прочитать содержимое vptr
, но это было бы не элегантно и не переносимо. Я предпочитаю портативный способ.
Могу ли я каким-то образом использовать оператор typeid
, чтобы иметь «безопасный» числовой идентификатор для класса? Например, могу ли я рассчитывать на то, что адрес результирующей структуры std::type_info
будет одинаковым для каждого вызова typeid
данного класса? Или, может быть, сам указатель name()
?
void**
и разыменовыванию его для vptr. :D А если серьезно - что-то похожее на 2-мерную виртуальную таблицу. - person Kos   schedule 19.04.2011