Internal compiler error 90. Bug report
Alexandre Oliva
oliva@dcc.unicamp.br
Fri Aug 14 12:28:00 GMT 1998
Roberto Viviani <rv103@hermes.cam.ac.uk> writes:
> The following code snippet generates the error message 'Internal compiler
> error 90. Please submit a full bug report to etc.':
> template<class T> class baseclass { public: typedef int* iterator;
> };
> template<class T> class derived : public baseclass<T> {
> public:
> typedef baseclass<T> base;
> void f(base::iterator i); //this compiles ok
> class internal {
> public:
> void g(base::iterator i); //<- error here
> };
> };
I can't reproduce your problem with the latest snapshot of egcs.
Anyway, you're required to precede template-dependent qualified type
names with the `typename' keyword, i.e., you should write `typename
base::iterator' instead of just `base::iterator', because the compiler
can't know at template parse time whether base::iterator will be the
name of a type or of a member. egcs accepts base::iterator at certain
points as an extension.
--
Alexandre Oliva
mailto:oliva@dcc.unicamp.br mailto:aoliva@acm.org
http://www.dcc.unicamp.br/~oliva
Universidade Estadual de Campinas, SP, Brasil
More information about the Gcc-bugs
mailing list