Как получить typeid указателя void *?

У меня есть список указателей на объекты. Эти объекты не имеют ничего общего (т.е. нет общего базового класса); для лучшего понимания: это список объектов, которые находятся под курсором мыши в графическом интерфейсе.

Теперь я хотел бы знать, что это за объект. Узел, дескриптор узла, линейный сегмент, тег и т. Д. Однако я не могу использовать typeid (* ptr) , поскольку ptr - это const void * .

Есть ли решение для этого? Могу ли я принудительно использовать typeid, поскольку я знаю, что указатели всегда указывают на объекты, а не на простые значения? Или нет способа добавить какой-то поддельный общий базовый класс?

(edit: В настоящее время я делаю это таким образом, что сохраняю структуру в списке, который дополнительно хранит тип объекта (как перечисление). Может быть, я следует изменить это, чтобы сохранить объект type_info ...)

9
задан Simon A. Eugster 4 July 2011 в 13:30
поделиться