Now that concepts are available in Clang trunk, I’d like to start working on getting ranges into libc++ so that there’s some usability in v11.
I’d like to offer the contents of cjdb-ranges, which is a licence-compatible partial implementation of the work from P0898 and P0896. It’s a near-complete implementation of [concepts] sans any post-Belfast changes and std::boolean, with a partial implementation for both of [iterators] and [ranges]. No work on [algorithms] has been started. The library started out as a clang-concepts-, clang-tidy-compatible effort, and the master branch is libc+±compatible.
Some minor work will need to be done to get it working with LLVM trunk (which I’ve only been able to move to in recent days). Lots of work will need to be done in order to migrate the tests from their current form into an LLVM-compatible form, but I’m happy to start looking into how to do that. Before doing so, I’d like to check that I’m not stepping on anyone’s toes by contributing this body of work?