// PR c++/66832 // { dg-do compile { target c++20 } } template requires requires (T& t, U &u) { t.foo(); u.foo(); } void foo_all( T (&t)[N], U (&u)[N] ) { for(auto& x : t) x.foo(); for(auto& x : u) x.foo(); } struct S { void foo() {} }; int main() { S rg[4] {}; foo_all(rg, rg); }