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

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

 



On Mon, May 11, 2015 at 1:29 PM, Paul Smith <paul@xxxxxxxxxxxxxxxxx> wrote:
> 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.

Thanks for clarifying the comparison/contrast.

> 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