https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94674
Jonathan Wakely <redi at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution|--- |INVALID --- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> --- The current disposition of the Library Working Group is to leave it that way, because it doesn't meet the traditional iterator requirements, so it's expected that iterator_traits is empty for it. As you already know, you can use range_value_t<decltype(view)> to get the value type instead, and range_difference_t for the difference type, and use the concepts std::input_iterator, std::forward_iterator etc. to determine which concepts it satisfies. Code written to work with ranges should rely on those interfaces, not iterator_traits, which is for traditional iterator types.