c++/9549: [3.4 regression] [New parser] ICE in regenerate_decl_from_template
Wolfgang Bangerth
bangerth@ticam.utexas.edu
Mon Feb 3 19:40:00 GMT 2003
On 3 Feb 2003, Gabriel Dos Reis wrote:
>
> | > > This is not a bug. You need to write
> | > > m.template do_it<T>();
> | >
> | > This is incorrect, as is your previous analysis in PR #9510:
>
> I agree with Martin.
I am willing to learn :-)
> | > This syntax is required only if the right hand side of the
> | > dot operator depends on a template parameter, otherwise it
> | > is optional. Please read 14.2, p4 for more.
> |
> | Ehm, but in m.do_it<T>, the rhs of the dot operator _is_ template
> | dependent, no?
>
> Sure. But that is irrelevant here. Because the lhs is -not- dependent.
It's just that 14.2.4 does not speak about the lhs at all. It reads
(itemization by me):
When the name of a member template specialization appears
- after . or -> in a postfix-expression, or
- after :: in a qualified-id that explicitly depends on a template
argument,
the member template name must be prefixed by the keyword "template".
In the example given in the standard, the lhs is not template dependent.
So please enlighten me...
W.
-------------------------------------------------------------------------
Wolfgang Bangerth email: bangerth@ticam.utexas.edu
www: http://www.ticam.utexas.edu/~bangerth/
More information about the Gcc-bugs
mailing list