3 ms·
Without the ability to break ABI, the C++ standard library is dead. "The Day The Standard Library Died" https://cor3ntin.github.io/posts/abi/ https://cor3ntin.
by lenkite 5y ago
Without the ability to break ABI, the C++ standard library is dead.
"The Day The Standard Library Died"
https://cor3ntin.github.io/posts/abi/ https://cor3ntin.github.io/posts/abi/
C++ ABI is also a joke. You can neither take advantage of it nor avoid it. Why have an ABI then ?
- einpoklum 5y ago> Without the ability to break ABI, the C++ standard library is dead. I agree that the ABI should be broken. However, the standard library is not dead, for 2 reasons: 1. There could be switch to an std2 namespace for new versions of things, or of the whole library. And then std3 etc. 2. There _will_ be a switch to standard library via _modules_, and with that switch the ABI is changing anyway, so it could be used to make changes to existing ABI ... that being said, a lot of the standard library, while not dead, is kind of brain-dead, like std::map and std::unordered_map; or how you need the mountain of code that is ranges to be able to say `vec2 = transform(vec1, my_func)`, even though that was perfectly doable with C++11 at the latest, etc. > Why have an ABI then ? Because that way compiled code can work with other compiled code without them being compiled together? :-(
- lenkite 5y agoYeah, I have an issue with the term ABI - application binary interface. It is misleading because if it were really a binary interface, you could interoperate with code compiled in other languages. But you cannot do this in C++. C++ doesn't have an ABI. It just pretends to have one.