On Sun 08 Mar 2020 at 11:45:24 -0500, Jason Bacon wrote: > With C++, it's complicated and I don't claim to understand all the issues in > detail. C++ is still evolving rapidly and different major versions of GCC > do not guarantee ABI compatibility or even API compatibility in all cases. Interestingly, I recently read some proposal to clean up part of the C++ standard library, which (according to the author) had not been done so far because ABI compatibility was to be preserved. This puzzled me, since it directly contradicts what you say above (and which I had read many times before). https://cor3ntin.github.io/posts/abi/ "February 24, 2020 The Day The Standard Library Died In Prague, the C++ committee took a series of polls on whether to break ABI, and decided not to." "You won't be able to use a symbol in a new version of a compiled library if you do any of the following: Add data member to an existing class Change template arguments, transform a function template to a non-template or vice versa, or make a template variadic Make something inline that previously wasn't Adding defaulted arguments to functions Add virtual functions And many more thing, but these are usually the one encountered by the committee and the ones that tend to kill proposals on the spot." I'm quite puzzled why the C++ committee is apparently working so hard (and annoying people in the process) to preserve the ABI if gcc then just breaks it willy-nilly. There must be something more going on that I'm not aware of. -Olaf. -- Olaf 'Rhialto' Seibert -- rhialto at falu dot nl ___ Anyone who is capable of getting themselves made President should on \X/ no account be allowed to do the job. --Douglas Adams, "THGTTG"
Description: PGP signature