When compile trysto expand: : seq < integral_c < Integral , Vals >...
the error diagnostic prints integral_c<T, val> instead of integral_c<Integral,Vals>. The integral_constant template is derived from integral_c and does have T and val args: struct integral_constant:public mpl::integral_c < T, val > However, when that is replaced with: struct integral_constant;//:public mpl::integral_c < T, val > Compilation succeeds. -- Summary: -std=gnu++0x expansion pattern fails with error about derived template instead of actual template Product: gcc Version: 4.4.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: cppljevans at suddenlink dot net http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40092