https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119820
--- Comment #1 from 康桓瑋 <hewillk at gmail dot com> ---
An example I can think of could be:
struct I {
using difference_type = int;
using value_type = char;
value_type operator*() const;
I& operator++();
I operator++(int);
I& operator--();
I operator--(int);
I& operator+=(std::signed_integral auto);
I& operator-=(std::signed_integral auto);
value_type operator[](std::signed_integral auto) const;
friend I operator+(I, std::signed_integral auto);
friend I operator+(std::signed_integral auto, I);
friend I operator-(I, std::signed_integral auto);
friend difference_type operator-(I, I);
auto operator<=>(const I&) const = default;
};
int main() {
std::ranges::subrange r{I{}, std::unreachable_sentinel};
[[maybe_unused]] std::format("{:s}", r);
}
Although this does seem a bit nitpicking, sorry.