https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69205
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |rejects-valid Known to fail| |6.0 --- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Here is a short testcase without any use of includes: struct string{}; template<typename _Signature> class function; template<typename _Res, typename... _ArgTypes> class function<_Res(_ArgTypes...)>{}; template<typename ActionType, typename... Cols> void print_action(function<ActionType*(Cols..., ActionType)> action_factory) {} int main(int argc, char *argv[]) { function<string*(int, string)> t; print_action<string, int>(t); print_action(t); return 0; } --- CUT --- I don't know variadic templates that well to know enough so I can't comment one way or another.