A broken diagnostic is issued for the following code snippet since GCC 4.3.0:
======================================== template<int> int foo(); template<typename F> void bar(F f) { f((foo<0>()=0)...); } ======================================== bug.cc: In function 'void bar(F)': bug.cc:5: error: expansion pattern '(#'template_id_expr' not supported by pp_c_expression#)()=0' contains no argument packs -- Summary: Broken diagnostic: 'template_id_expr' not supported by pp_c_expression Product: gcc Version: 4.4.0 Status: UNCONFIRMED Keywords: diagnostic, monitored Severity: normal Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: reichelt at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38656