This is the mail archive of the
gcc-prs@gcc.gnu.org
mailing list for the GCC project.
Re: c++/9660: use of template keyword to specify templated method cause ICE
- From: MAudouy at amadeus dot net
- To: nobody at gcc dot gnu dot org
- Cc: gcc-prs at gcc dot gnu dot org,
- Date: 11 Feb 2003 11:06:00 -0000
- Subject: Re: c++/9660: use of template keyword to specify templated method cause ICE
- Reply-to: MAudouy at amadeus dot net
The following reply was made to PR c++/9660; it has been noted by GNATS.
From: MAudouy@amadeus.net
To: gdr@integrable-solutions.net
Cc: gcc-gnats@gcc.gnu.org, gdr@integrable-solutions.net
Subject: Re: c++/9660: use of template keyword to specify templated method cause ICE
Date: Tue, 11 Feb 2003 11:02:15 +0000
You are right, I have not noticed this peculiarity (14.2/5) before.
this PR should be reclassified as ice-on-illegal-code then
Marc Audouy
From: Gabriel Dos Reis <gdr@integrable-solutions.net>
@integrable-solutions.net on 11/02/2003 11:53 CET
Sent by: gdr@integrable-solutions.net
To: maudouy@amadeus.net
cc: gcc-gnats@gcc.gnu.org
Subjec Re: c++/9660: use of template
t: keyword to specify templated
method cause ICE
maudouy@amadeus.net writes:
| >Number: 9660
| >Category: c++
| >Synopsis: use of template keyword to specify templated method
cause ICE
| >Confidential: no
| >Severity: serious
| >Priority: medium
| >Responsible: unassigned
| >State: open
| >Class: ice-on-legal-code
I believe your program is ill-formed, and I would suggest this PR be
reclassified as ice-on-illegal-code.
14.2/5
If a name prefixed by the keyword template is not the name of a
member template, the program is ill-formed.
[...]
| >Fix:
| an easy workaround is not to use the template keyword, it works in this
case. but when using other compilers (like aCC on HP-UX) it is necessary.
Those compilers are in error, AFAICT.
[...]
| class B {
| public:
| A& getA(int a, int b)
| {
| A& anA = TOTO::template create<A>(a,b);
^^^^^^^^^^^^^^
That is not valid; see 14.2/5 quoted above.
-- Gaby