https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119415
--- Comment #12 from Tomasz KamiĆski <tkaminsk at gcc dot gnu.org> --- I have realized that with the resolution of the https://cplusplus.github.io/LWG/lwg-defects.html#3749, you can run into this problem by doing: auto r = std::views::iota(__int128(0)) | std::views::take(5) | std::views::common; s.insert_range(r); The GCC does not yet implement this issue (https://gcc.gnu.org/wiki/LibstdcxxTodo), but checking for iterator_traits<It>::iterator_category being derived from input_iterator_tag as you suggested will avoid the issue.