http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54440
Bug #: 54440 Summary: [c++11] g++ prematurely applying rule that a template parameter pack cannot be followed by a template parameter Classification: Unclassified Product: gcc Version: 4.7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassig...@gcc.gnu.org ReportedBy: eric.nieb...@gmail.com The following code: template<int...I> struct S { template<template<decltype(I)> class...A, template<int> class B> struct T; }; yields: main.cpp:5:12: error: parameter pack ‘A’ must be at the end of the template parameter list I believe this is erroneous, as does clang developer Richard Smith. After S is instantiated, A instantiates to a non-pack.