http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54987
--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> 2012-10-19 18:46:26 UTC --- Comeau C/C++ 4.3.10.1 (Oct 6 2008 11:28:09) for ONLINE_EVALUATION_BETA2 Copyright 1988-2008 Comeau Computing. All rights reserved. MODE:strict errors C++ C++0x_extensions "ComeauTest.c", line 47: error: more than one instance of overloaded function "foo" matches the argument list, the choices that match are: function template "void foo(T, Template1<make_type<T>::type>)" function template "void foo(T, Template2<make_type<T>::type>)" The argument types that you used are: (Argument1, Template1<Argument2>) foo( a, t ); ^