Visual Studio - Передает лучшую студию RAD существует. Если Вы думаете, что это не только используется для средств разработки Microsoft, Призма Delphi использует его, и Инструменты управления SQL для SQL Server все использование он, Вы понимаете гибкость его. Это также свободно (Инструмент/IDE RAD - не средство разработки).
То, как хранится информация RTTI, является деталями реализации и, следовательно, не переносится между разными компиляторами.
Также большинство компиляторов даже не гарантируют, что объекты скомпилированы с разными flags будет использовать тот же ABI для методов there. Это наиболее заметно проявляется в библиотеках выпуска и отладки, но другие флаги также могут вызывать различия.
Не только может изменяться ABI для функций / методов, но флаги могут влиять на заполнение, используемое компилятором между элементами в структурах, таким образом, даже объекты без виртуальные методы могут быть несовместимы при компиляции с разными флагами.
При использовании большинства IDS вы можете увидеть эффекты. Двоичные файлы Debug / Release встроены в отдельные каталоги и связаны только с одним и тем же типом двоичных файлов (также любая пользовательская сборка будет встроена в отдельный уникальный каталог, поскольку разница во флагах может вызвать несовместимость). Если вы измените определенные флаги в сборке, то обычно придется перекомпилировать весь проект.
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.
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...!-)