https://gcc.gnu.org/g:f176028371c5b5339ca6d8d975d47b2347234af9
commit r15-7361-gf176028371c5b5339ca6d8d975d47b2347234af9 Author: Marek Polacek <pola...@redhat.com> Date: Tue Feb 4 17:32:50 2025 -0500 c++: add fixed test [PR94100] The recent r15-7339-g26d3424ca5d9f4 fixed this test too. PR c++/94100 gcc/testsuite/ChangeLog: * g++.dg/cpp0x/variadic188.C: New test. Diff: --- gcc/testsuite/g++.dg/cpp0x/variadic188.C | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gcc/testsuite/g++.dg/cpp0x/variadic188.C b/gcc/testsuite/g++.dg/cpp0x/variadic188.C new file mode 100644 index 000000000000..04732a5e68fb --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp0x/variadic188.C @@ -0,0 +1,23 @@ +// PR c++/94100 +// { dg-do compile { target c++11 } } + +template <typename... T> struct ValListWithTypes { + template <T... Members> struct WithVals { + using TypeList = ValListWithTypes; + }; +}; + +template <typename ValList, typename ValTypeList = typename ValList::TypeList> +struct Widget; + +template <typename ValList, typename... ValTypes> +struct Widget<ValList, ValListWithTypes<ValTypes...>> { + template <typename = ValList> struct Impl {}; +}; + +template <typename ValList, typename... ValTypes> +template <ValTypes... Vals> +struct Widget<ValList, ValListWithTypes<ValTypes...>>::Impl< + typename ValListWithTypes<ValTypes...>::template WithVals<Vals...>> {}; + +int main(void) { Widget<ValListWithTypes<int>::WithVals<0>>::Impl<> impl; }