http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46061
Summary: Variadic Template Templates: not expandable into fixed-size argument list, Implementation Gap. Product: gcc Version: 4.5.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassig...@gcc.gnu.org ReportedBy: andreas.milto...@gmail.com Created attachment 22073 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=22073 full demo for bug ( .ii-file <14 lines) The following struct "type_list" marks a list of types, which is constructed as a template template class with a variadic type list of template arguments: template <typename H, template <typename> class T, template <typename> class... R> struct type_list { typedef type_list< T<H>, R... > tail; }; template<typename H, template<typename> class T> struct type_list<H,T> {}; The code (attached as variadic_templ_templ.ii) produces the following error-message (identical for gcc 4.4 and 4.5.1): "sorry, unimplemented: cannot expand ‘template<class> class ... R ...’ into a fixed-length argument list" No other flags than -v -save-temps -Wall -std=c++0x were used.