The following code doesn't compile on gcc-4.4.1, gcc-4.5.0 and gcc-trunk (as of 2010/08/09):
//----------------------------------------------- template <class T, int S> class foo; template<template<int...> class C, int... II, int S> struct foo<C<II...>,S> { struct bar {}; }; template <int... I> struct A {}; foo<A<3>, 4>::bar x; //----------------------------------------------- g++ output: g++ -std=c++0x teste.cpp -o teste teste.cpp:12:1: error: bar in class foo<A<3>, 4> does not name a type -- Summary: Can't access nested type of a partial class specialization involving variadic parameters Product: gcc Version: 4.5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: rodolfo at rodsoft dot org GCC build triplet: x86_64-pc-linux-gnu GCC host triplet: x86_64-pc-linux-gnu GCC target triplet: x86_64-pc-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45236