On Dec 2, 2020, at 7:58 AM, Jeff Garland via Boost
On Wed, Dec 2, 2020 at 8:50 AM Andrey Semashev via Boost < boost@lists.boost.org mailto:boost@lists.boost.org> wrote:
It doesn't need to define ABI for it to be real -- the library implementers are very aggressive in limiting ABI breaks. The former LEWG chair (Titus) was quite vocal in wanting to remove this constraint leading to vigorous debates and a vote which basically affirmed that the committee was very split on the matter, but preferred stability.
As an example of this, libstdc++ had to switch their basic_string to a
non-reference counted implementation when they added support for C++11, and they had to maintain both versions ever since. The standard, obviously, only defines one basic_string.
And that was the last ABI break that made it thru the committee -- so a good decade ago.
And if you watch stack overflow, people are *still* getting bit by that change. https://stackoverflow.com/questions/36159238/linking-problems-due-to-symbols... https://stackoverflow.com/questions/36159238/linking-problems-due-to-symbols... (2015) https://stackoverflow.com/questions/34571583/understanding-gcc-5s-glibcxx-us... https://stackoverflow.com/questions/34571583/understanding-gcc-5s-glibcxx-us... (2016) https://stackoverflow.com/questions/47912089/why-is-the-wrong-gcc-7-2-libstd... https://stackoverflow.com/questions/47912089/why-is-the-wrong-gcc-7-2-libstd... (2017) https://stackoverflow.com/questions/51382355/stdregex-and-dual-abi https://stackoverflow.com/questions/51382355/stdregex-and-dual-abi (2018) https://stackoverflow.com/questions/54987856/boost-linking-problems/54987989... https://stackoverflow.com/questions/54987856/boost-linking-problems/54987989... (2019, in reference to boost!) And so on. — Marshall