> Break binary compatibility? What kind of guarantees are there? I'm > not advocating a change in data structures, but it doesn't seem like > there are any promises beyond API conformance, are there? Imagine you write a library and you compile and distribute the binaries. Someone else builds against those. If std::set is used in your API, and they have a different version of libstdc++, do you still want the library and the binary to be compatible, even across different versions of libstdc++?