http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50830
Bug #: 50830 Summary: [c++0x] Variadic template, inner class error Classification: Unclassified Product: gcc Version: 4.7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassig...@gcc.gnu.org ReportedBy: trashyan...@wp.pl Build: MinGW 4.6.0 20110210; MinGW 4.7.0 20110815 this code generate error `expected a class template, got 'template<class> struct aa'` (case `a4` and `a5`) when i remove every `...` its compile without problems ----------------------------------------------------- template<class...> struct list_type {}; template<template<class> class...> struct list_templates {}; template<class> struct aa {}; template<class> struct bb {}; template<class... T> struct test {}; template<template<class> class... F> struct test<list_templates<F...>> { struct inner {}; }; template<template<class> class... F, template<class> class... F2> struct test<list_templates<F...>, list_templates<F2...>> { struct inner {}; }; template<class... T> struct test<list_type<T...>> { struct inner {}; }; template<class... T,class... T2> struct test<list_type<T...>, list_type<T2...>> { struct inner {}; }; template<template<class> class... F, class... T> struct test<list_templates<F...>, list_type<T...>> { struct inner {}; }; test<list_templates<aa>> a1; test<list_type<int>> a2; test<list_type<int>, list_type<int>> a3; test<list_templates<aa>, list_type<int>> a4; // error test<list_templates<aa>, list_templates<bb>> a5; // error -----------------------------------------------------