I am trying to find compiler features which will work if shared library compiled using standard library that differ from standard library of executable, that load shared lib. I understand that ABI of standard library is standardized nowhere, but I can use my own base class for all exceptions.
I found that exception handling ABI standardized on Linux (Itanium C++ ABI: Exception Handling), and on Windows (x64 exception handling).
Also as I understand data alignment standardized too (System V Application Binary Interface AMD64 Architecture Processor Supplement, x64 software conventions).
- Target architectures: amd64, AArch64;
- Target platforms: Linux, Windows.
Can I use exceptions or I need to handle them at the DLL/SO boundaries?
Can I use exceptions if executable and shared library use different compilers (MSVC and GCC or GCC and MSVC respectively)