Какую информацию хранит RTTI для полиморфного объекта?

Прежде чем я начну - я знаю, что полиморфный объект имеет vtable для выбора правильного метода во время выполнения. Однако есть ли дополнительная информация, которую содержит каждый полиморфный объект (исключая vtable)?

Я пытаюсь измерить размер / стоимость полиморфного объекта с включенным RTTI по ​​сравнению с неполиморфным объектом. Я знаю только о накладных расходах vtable и задавался вопросом, что еще хранится в RTTI.

РЕДАКТИРОВАТЬ: скажем, для компилятора GCC

1 ответ

Там также может быть определенное реализацией имя типа (для std::type_info::name(), что в теории может содержать абсолютно все), но в остальном это в значительной степени просто vtable. Конечно, я не могу думать ни о чем другом, что должно быть там, чтобы соответствовать правилам языка.

Не намного больше можно сказать в общем случае; это полностью зависит от реализации, а вы не указали ее. Некоторые компиляторы могут включать рецепт куриного супа, если он этого действительно хочет.

Другие вопросы по тегам