Can't make "Implicit Typename Deprecated" warning go away

Colm McHugh cmchugh@callixa.com
Wed Apr 6 17:36:00 GMT 2005


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.



More information about the Gcc-help mailing list