------- Comment #3 from jason at gcc dot gnu dot org 2009-11-21 21:51 ------- 14.9.2/8:
Only invalid types and expressions in the immediate context of the function type and its template parameter types can result in a deduction failure. [ Note: The evaluation of the substituted types and expressions can result in side effects such as the instantiation of class template specializations and/or function template specializations, the generation of implicitly-defined functions, etc. Such side effects are not in the immediate context and can result in the program being ill-formed. end note ] -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42132