On 06.12.22 17:52, Peter Dimov via Boost wrote:
Rainer Deyke wrote:
At a first glance, the following libraries would have to justify their continued existence as "core" Boost libraries:
Any (superseded by std::any) Array (superseded by std::array) Assign (superseded by std::initializer_list) Atomic (C++11 feature emulation library) Bind (superseded by lambda expressions) Chrono (superseded by std::chrono) ...
This gets us back to our never-ending discussion of Boost dropping C++03 support.
I'm not advocating that any of these libraries are dropped, or even deprecated. I am just advocating that they are pushed into the background a bit. A more neutral approach would be to give each library a range of C++ standards for which the library is useful, and allow the user to filter by the C++ standard they are using. Picking C++11, for example, would filter out both Atomic (because it is superseded by the standard library) and Describe (because it requires C++14).
I'm sure this time it will be more productive than our last three attempts.
Incidentally, std::any is C++17, so classifying Any as "legacy" implies everyone uses C++17 or better. (You also have "superseded by C++20" further down the list, which is even less justifiable.)
It shouldn't be controversial to advocate that new application code should use the newest C++ standard where possible. And for where that's not possible, the legacy libraries will still be available. -- Rainer Deyke (rainerd@eldwood.com)