Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Throwing C++ exceptions across DLL boundaries could also be problematic. Note I say DLL, and accent on Windows, because on other systems more likely one C++ runtime to be used, always dynamically linked (well, there are exceptions like busybox - but they are not even written in C++).

Anyway, in the Windows world - a mix of compilers is the norm, and even the "standard" MSVC compiler differs in how it handles exceptions one version to another.

For example all the team is on VS2010, while I keep VS2005 and VS2008 because I have to compile plugins for Autodesk products released with these compilers (not only for exceptions, but also for RTTI, virtual functions handling, and Runtime overall - for this even "C" would get the blame).



On Linux you can mix compilers as long as they implement the Itanium ABI. At least I haven't had to recompile anything after upgrading GCC.


Not C++ compilers tho' - the issue is not the ABI, it's the name mangling. Tho' I believe Clang and GCC have decided to use the same convention, ICC might not have (and that by all accounts is a great compiler).


http://sourcery.mentor.com/public/cxx-abi/abi.html#mangling

I'm 99% sure that ICC is compatible with GCC.


When the switch between GCC 2.x and 3.0 happened, the big new thing was 'industry standard' C++ ABI (called Itanium ABI, as el_presidente mentioned).




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: