https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103831
--- Comment #2 from 康桓瑋 <hewillk at gmail dot com> --- Please let me add a digression, is the standard overconstrained the definition of tiny_range? In the current standard, it seems that only single_view and empty_view satisfy tiny_range. However, std::array<int, 1> and span<int, 1> or even int[1], in my opinion, should be valid Pattern types when V is an input_range, because we can directly extract their size from the type, but none of the three have a static size() function. This also means that the constructor lazy_split_view(R&&, P&&) has an *extremely* limited set of P when R is an input_range.