This is the mail archive of the
mailing list for the libstdc++ project.
Re: Dealing with C++98/11 ABI incompatibilities
On Wed, Jul 4, 2012 at 3:22 PM, Michael Matz <email@example.com> wrote:
> On Wed, 4 Jul 2012, Richard Guenther wrote:
>> > [... mangling change ...]
>> That would not address the issue of interoperability of a C++03 library
>> with a C++11 program or vice versa if they are using any of the changed
>> interfaces for interoperability. Passing pointers to such objects still
>> would work and break unnoticed.
> But it's the best we can possibly do _if_ we want to conform to c++11 in
> the v6 ABI. IMHO we want to, so we have to at least make 98/11 code
> coexist in the same process image, which means mangling changes. That the
> code can't interoperate is understood.
> It will by the way not break unnoticed: interfaces using the problematic
> types would be mangled differently, and hence c++98 code would silently be
> resolved to a c++11 variant expecting a different layout.
Hmm, ok. I can see people wanting to use C++11 as implementation language
but interfacing with C++98, thus have a way to use the C++98 std::list from
Btw, why use a bitmask? Isn't it enough to have a single number, viewed
as an ABI suffix?