I have a library function that works on arbitrary containers. Basically it prints elements. For a bidirectional/random-access container it prints first and last, for unidirectional only first. Recognizing and using bidirectionality hinges on a working --container.end(). This worked for std::array in C++17, but in C++20 std::array has ConstexprIterator instead of LegacyRandomAccessIterator.
Reading https://en.cppreference.com/w/cpp/named_req/ConstexprIterator it seems that ConstexprIterator really doesn't have operator-- and instead has something to do with cats???
So my question is: WHY isn't ConstexprIterator random-access or at least bidirectional? I mean, if it works at compile time then it really should be random-access.
