Colm, That typedef declaration is wrong. typedef typename HashTable<KEY_T, DATA_T>::iterator MyIterator; corey On Apr 6, 2005 12:35 PM, Colm McHugh <cmchugh@xxxxxxxxxxx> wrote: > Hi, > > I'm using gcc 3.3.3 on Linux, and compiling the following code: > > template < typename KEY_T, typename DATA_T > > inline HashTable< KEY_T, DATA_T >::iterator > HashTable< KEY_T, DATA_T >::find( const KeyType& key ) > { > SizeType bucket; > NodeType* node; > //etc > > Gives the following warnings: > > HashTable_tmpl.cpp:170: warning: `HashTable<KEY_T, DATA_T>::iterator' is > implicitly a typename > HashTable_tmpl.cpp:170: warning: implicit typename is deprecated, please > see the documentation for details > > I changed the line that begins with inline to include the 'typename' > keyword immediately after the inline keyword, > as described in http://gcc.gnu.org/ml/gcc/2003-06/msg00978.html, but > that makes no difference, the warning still > shows up. I also tried adding the following typedef to the HashTable > class definition: > > typedef typename HashTable<KEY_T, DATA_T>::iterator; > > but that makes no difference as well. Can anyone point out what I'm > missing ? > > Thanks, > Colm. > >