Boost logo

Boost :

Subject: Re: [boost] List of C++ 11 only Boost libraries and their status?
From: Jason Roehm (jasonr_at_[hidden])
Date: 2014-11-26 14:08:01


On 11/26/2014 10:51 AM, Robert Ramey wrote:
> I have to say I don't get the point of such a review.
>
> Boost has never had a requirement that a library support anything other than
> the latest available C++ standard.
>
> Given that C++11+ has facilities that make library writing easier
> (especially for more difficult libraries), I would expect that almost any
> library not in Boost would be built using C++11+ facilities. So what is the
> point of making such a list?
>
> C++ libraries are defined by their public interfaces. The implementation is
> (or should be) irrelevant to the user.
> Since C++ evolution places high value on maintaining backward compatibility,
> Users shouldn't see any effects from the emergence of any C++11+ version.
> Again, I just don't see what the point of such a review would be? How would
> it be useful or relevant to any user or library developer?
>
The C++ standard used by a library is actually very relevant to users,
especially for template libraries. If the user has a requirement to use
an older compiler that doesn't support C++11/14, then template libraries
that use those dialects, even just in their implementation, are not usable.

Even for non-template libraries, where the user just compiles against a
set of headers and links against a provided binary, the C++ dialect used
when compiling the library is important. There's no airtight guarantee
of ABI compatibility between the C++11 and C++98/03 standard libraries,
so you can run into problems if, for instance, the layout of a
std::list<T> differs between the two standard library implementations
(as it could because of the change in complexity of std::list<T>::size()
between the two C++ versions).

So, from the perspective of a user who is often limited to use older
compilers, the language requirements of a library that I'm considering
is very important.

Jason


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk