https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104465
--- Comment #5 from Jonathan Wakely <redi at gcc dot gnu.org> --- (In reply to Younan Zhang from comment #0) > Clang 13 rejects the above code (https://gcc.godbolt.org/z/xoKesEz7q), which > is as expected. That's just because Clang is broken and doesn't work with any libstdc++ views: https://github.com/llvm/llvm-project/issues/44178 So there are several things going on here. You're correct that P2415 is not implemented, but I think your example is supposed to compile even before that change. An lvalue vector has always been a viewable range. Clang 13 rejects your example because it's broken, not because of the viewable_range requirement.