https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115218
--- Comment #6 from Patrick Palka <ppalka at gcc dot gnu.org> --- (In reply to Jonathan Wakely from comment #3) > (In reply to Patrick Palka from comment #1) > > Does this also mean the iterator's default ctor needs a > > default_initializable<_Vs...[0]> constraint? > Aside: I've just noticed the iterator should be renamed to _Iterator. Oops, will fix. IIUC even though iterator is a reserved name (due to std::iterator) we can't safely use it here since it could cause name lookup ambiguity in valid code, e.g. struct A { using iterator = void; } struct B : concat_view<...>, A { using type = iterator; };