https://gcc.gnu.org/bugzilla/show_bug.cgi?id=123901
--- Comment #5 from Tomasz KamiĆski <tkaminsk at gcc dot gnu.org> --- > We could still consider lowering all contiguous iterators to const CharT* > pointers, so that we share the same instantiations for std::string::iterator > and std::string::const_iterator, and char* and const char*, and iterators > into vectors and spans. That wouldn't perform any allocations and wouldn't > have any effect on non-contiguous iterators (like your rope use case). Yes. FWIW this is what I did for the formatting ranges as strings, for all contingous ranges. I have even included one that are not-sized, and must be iterated twice (not relevant for pre-C++20 iterators).
