http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48883
--- Comment #3 from Jonathan Wakely <redi at gcc dot gnu.org> 2011-07-01 16:50:36 UTC --- Is this related to http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49609#c2 ? The ternary operator is not one of the contexts listed in 13.4 [over.over] p1 either. The explicit argument list uniquely identifies the specialization, so myMax<int> is an lvalue for the function template, but I don't see any requirement that it gets instantiated