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: [email protected]
ReportedBy: [email protected]
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.