// Pack expansion testcases from P2082R1 // { dg-do compile { target c++20 } } template struct C2 : T... { U a; static constexpr int len = sizeof...(T); }; C2 c2 = { []{ return 1; }, }; static_assert (c2.len == 0); template struct Types {}; template struct F : Types, T... {}; struct X {}; struct Y {}; struct Z {}; struct W { operator Y(); }; F f1 = {Types{}, {}, {}}; // OK, F deduced F f2 = {Types{}, X{}, Y{}}; // OK, F deduced F f3 = {Types{}, X{}, W{}}; // { dg-error "" } conflicting types deduced; operator Y not considered