[Bug c++/20308] parser thinks something is a start of a template-id when it is just less than
pinskia at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Thu Mar 3 23:25:00 GMT 2005
------- Additional Comments From pinskia at gcc dot gnu dot org 2005-03-03 23:25 -------
Hmm, this is the reduced testcase (but I don't know if this is invalid as Comeau also rejects it but I think
it is valid):
template<typename> int nick(int e);
template<int> struct operation{int nick;};
template<int s>
bool alphaMnemonic(const operation<s>& o1, const operation<s>& o2)
{
return o1.nick < o2.nick;
}
If nick was not a template or not declated we accept it, if alphaMnemonic is not a template we accept it.
I think we have a name lookup problem really. if we want o1.nick as a template we need the template
keyword. This is not a regression if this is valid code, I really think it is. ICC 8.0 accepts it.
--
What |Removed |Added
----------------------------------------------------------------------------
CC| |pinskia at gcc dot gnu dot
| |org
Status|UNCONFIRMED |NEW
Ever Confirmed| |1
Keywords| |rejects-valid
Known to fail| |3.3.3 3.4.0 4.0.0 2.95.3
| |3.2.3
Last reconfirmed|0000-00-00 00:00:00 |2005-03-03 23:25:22
date| |
Summary|lost parser |parser thinks something is a
| |start of a template-id when
| |it is just less than
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20308
More information about the Gcc-bugs
mailing list