// PR c++/96241 // { dg-do compile { target c++11 } } template struct S {}; template using U = S; template using f = S; template using V = U; template struct A { typedef int type[N]; }; template struct B { typename A::type k; }; template constexpr B bar(T (&arr)[N], f) { return {arr[P]...}; } template constexpr B foo(T (&arr)[N]) { return bar(arr, V{}); } constexpr char arr[2]{}; B<2> b = foo(arr);