I've been toying around with a pull request that was entered against
boost::range to support integration of boost range_v2 and C++20 ranges to
see how flexible it would be:
https://github.com/boostorg/range/pull/123
I have a need to continue to use boost::any_range in some of our
interfaces, but it would be nice to switch to using C++20 ranges under the
covers. A lot of it seems to work well with the type definitions from the
pull request, but I'm running into an issue with concept check on line 228
or any_iterator_wrapper.hpp specifically when using the transform adaptor.
I don't have the same issue with boost::adaptors::transformed. What has me
confused is that I think that the result views::transform should be forward
traversal, but I'm not really clear on exactly why it is failing. I created
a test if anyone wants to play around with it in a compiler and help me
understand what is going on:
https://godbolt.org/z/1hMsofbrv
Switching between the two commented out base_range declarations will get
you different results. Here is the code for anyone that just wants to look
at it here:
#include