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