Implicit typename deprecated?

Dave Williss dwilliss@microimages.com
Tue Aug 27 07:28:00 GMT 2002


Hi,

After upgrading compilers to gcc 3.1, I get this warning a lot....

 warning: `typename MILIST<_T*>::ITERATOR' is implicitly a typename
 warning: implicit typename is deprecated, please see the documentation for
details

Where is the documentation it's referring to?  It doesn't seem to be in the
man pages.
All I can find is an option -Wno-deprecated to not give the warning.

This is in the definition for a template class (very abbreviated excerpt
below...)

    template <class _T> class SUBJECT {
        public:
            typedef MILIST<_T*> OBSERVERLIST;
            class ITERATOR {
                // bunch of stuff left out to keep email short
                private:
                    OBSERVERLIST::ITERATOR m_it;    // This is the line with
the warning
                };
        };

Obviously the MILIST<> template defines a public nested class ITERATOR.

I originally had  MILIST<_T*>::ITERATOR m_it and changed it to use the
typedef to try to get rid of the warning, but it didn't help.

 -- Dave Williss
------
Meddle not in the affairs of dragons,
   for you are crunchy and taste good with catsup




More information about the Gcc-help mailing list