This is the mail archive of the gcc-prs@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]

Re: c++/9660: use of template keyword to specify templated method cause ICE


The following reply was made to PR c++/9660; it has been noted by GNATS.

From: Gabriel Dos Reis <gdr@integrable-solutions.net>
To: maudouy@amadeus.net
Cc: gcc-gnats@gcc.gnu.org
Subject: Re: c++/9660: use of template keyword to specify templated method cause ICE
Date: 11 Feb 2003 11:53:23 +0100

 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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]