Смешивание RTTI отмечает в C++

Visual Studio - Передает лучшую студию RAD существует. Если Вы думаете, что это не только используется для средств разработки Microsoft, Призма Delphi использует его, и Инструменты управления SQL для SQL Server все использование он, Вы понимаете гибкость его. Это также свободно (Инструмент/IDE RAD - не средство разработки).

8
задан Akusete 29 September 2009 в 05:08
поделиться

3 ответа

То, как хранится информация RTTI, является деталями реализации и, следовательно, не переносится между разными компиляторами.

Также большинство компиляторов даже не гарантируют, что объекты скомпилированы с разными flags будет использовать тот же ABI для методов there. Это наиболее заметно проявляется в библиотеках выпуска и отладки, но другие флаги также могут вызывать различия.

Не только может изменяться ABI для функций / методов, но флаги могут влиять на заполнение, используемое компилятором между элементами в структурах, таким образом, даже объекты без виртуальные методы могут быть несовместимы при компиляции с разными флагами.

При использовании большинства IDS вы можете увидеть эффекты. Двоичные файлы Debug / Release встроены в отдельные каталоги и связаны только с одним и тем же типом двоичных файлов (также любая пользовательская сборка будет встроена в отдельный уникальный каталог, поскольку разница во флагах может вызвать несовместимость). Если вы измените определенные флаги в сборке, то обычно придется перекомпилировать весь проект.

6
ответ дан 5 December 2019 в 21:20
поделиться

As long as the classes shared are not polymorphic (i.e, they don't contain virtual functions), this will not be a problem. But you won't be able to use dynamic_cast, typeid and exceptions with RTTI disabled.

0
ответ дан 5 December 2019 в 21:20
поделиться

That depends on what specific C++ compiler you're talking about -- I have no really recent cross-platforms experience with C++ (my C++ work in recent years has been almost exclusively with C++ on Linux), but a few years ago I'd have bet that gcc would have let you get away with quite a bit of such miscegenation, Visual C++ "no way", other compilers somewhat in the middle...!-)

1
ответ дан 5 December 2019 в 21:20
поделиться
Другие вопросы по тегам:

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