https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111550
--- Comment #7 from Patrick Palka <ppalka at gcc dot gnu.org> --- (In reply to Jonathan Wakely from comment #6) > So comment 0 is still a problem but only in C++20 mode. Making the range adaptor closure objects perfect forwarding without deducing this doesn't seem worth it to me -- it'd mean increasing the operator() overload set from 3 to 8 which will regress diagnostics and compile time. And I don't think true perfect forwarding is really needed in practice with how adaptors are intended to be used. But GCC supports using deducing this in C++20 mode as an extension, so maybe we should just always use deducing this here with GCC. Clang unfortunately doesn't support deducing this in C++20 mode.