http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51664

--- Comment #5 from Jonathan Wakely <redi at gcc dot gnu.org> 2011-12-23 
14:41:17 UTC ---
Richard: yes.

[temp.names] p3 says

-3- After name lookup (3.4) finds that a name is a template-name or that an
operator-function-id or a literal-operator-id refers to a set of overloaded
functions any member of which is a function template if this is followed by a
<, the < is always taken as the delimiter of a template-argument-list and never
as the less-than operator. [...]

but then p4 should apply in this case:

-4- When the name of a member template specialization appears after . or -> in
a postfix-expression or after a nested-name-specifier in a qualified-id, and the
object expression of the postfix-expression is type-dependent or the
nested-name-specifier in the qualified-id refers to a dependent type, but the
name is not a member of the current instantiation (14.6.2.1), the member
template name must be prefixed by the keyword template. Otherwise the name is
assumed to name a non-template.

Let's see what Jason says

Reply via email to