On Mon, Aug 27, 2018 at 12:30 PM Peter Dimov wrote:
But that's not the point, is it? The point is, f.ex. that Boost.Test can't drop C++03 and use rvalue references and std::function in its interface (also something we discussed), because it's Boost Test, which other libraries use in their tests. Since we (Boost) officially support C++03, we run tests with C++03, and Boost.Test has to support C++03.
Maybe there's a way to have the best of all worlds: The maintainers of Boost.Test should have the freedom to even declare they support only C++17 or above (let alone C++11 and above), if they want to. Just by creating a new Boost.Test and relinquishing maintenance of the old Boost.Test. While not a perfect example (or even a very good one), we have things like Coroutine and Coroutine2. Boost.Test in its current C++03-supporting form could be legacy, until other library authors migrate away to Boost.Test17. Any other library authors, or even users, who for whatever reason want to keep the old Boost.Test around, can volunteer to help community-maintain it. Glen