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
Attachment:
signature.asc
Description: OpenPGP digital signature