On 09/05/2013 06:06, Florian Weimer wrote: > I mistyped, I meant ABI. I'm deeply sorry about that, it mangles my > statement quite badly. > > AFAIK, this is the major reason why the C++11 support is still marked > as experimental.
C++ never had a set ABI in the standard. It's up to compiler/toolchain/library writers to ensure that there aren't ABI breakages. Considering that you still link against the same libstdc++.so.6 regardless of whether or not you use C++11 features, I don't see how avoiding C++11 features will avoid triggering a mass-rebuild in the event of an ABI break in libstdc++6. > std::string, std::list and probably std::shared_ptr will have to > change ABI at some point. When that happens, it'll probably be namespaced somehow, because the C++98 std::{string,list,shared_ptr}'s will still have to stay. Then C++11 programs compiled against older libstdc++ will just continue to use the C++98 std::{string,list,shared_ptr} and remain binary-compatible. No recompilation required there. -- Kind regards, Loong Jin
signature.asc
Description: OpenPGP digital signature