This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
| Other format: | [Raw text] | |
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/
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |