4 ms·
> C++ famously took many years to have a stable ABI. I'm pretty sure C++ doesn't prescribe any particular ABI for implementations to adhere to. There was even
by aw1621107 8y ago
> C++ famously took many years to have a stable ABI.
I'm pretty sure C++ doesn't prescribe any particular ABI for implementations to adhere to. There was even a paper in 2014 about defining a portable ABI, and I don't believe it was adopted [0].
In particular, MSVC uses a different ABI than the *nixes, and MSVC's ABI isn't guaranteed to be stable across major compiler releases. In addition, libstdc++ 5.1 had a significant break for C++11 std::string and std::list [1].
[0]: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4028.pdf
[1]: https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html