Re: Why are RB-trees used to implement std::set?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 2015-05-11 at 12:40 -0400, Michael Powell wrote:
> > 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++?
> 
> Playing devil's advocate, I want interface compatibility.

Indeed.  But "interface" is part of both API and ABI so your statement
doesn't help answer the question.

If you want to be able to link against pre-compiled libraries, then you
require *binary* interface compatibility.  Making changes to the
underlying type of a std:: type can break the ABI.

If you're OK with recompiling everything yourself rather than using
pre-compiled libraries, then you only require *program* interface
compatibility.  In this case it's straightforward to make those changes.

Most people really require ABI stability for a library like libstdc++.





[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux