Toon posts:

[c++] typename doet het niet?

Pagina: 1
Acties:

Verwijderd

Topicstarter
ik heb een klasse declaratie in men headerfile en die gaat zo:

C++:
1
2
3
4
5
6
7
8
9
template< class F, class R > class Database{
    public:
                   //paar methodes
         protected:
                  //nog wat methodes
         private:
                 //datamembers en nog wat methodes
                 typename list< R >::iterator findRecord(const F* o);
}


De sun compiler geeft als error:
"Database.h", line 247: Warning (Anachronism): Type names qualified by template parameters require "typename"
gcc geeft:
Database.h:246: warning: `typename std::list<R, std::allocator<_T2> >::iterator
' is implicitly a typename
Database.h:246: warning: implicit typename is deprecated, please see the
documentation for details

Dat begrijp ik dus als er moet typename voor staan..... maar dat staat er toch voor? :? :?

Verwijderd

Topicstarter
Zeer bizar, maar het is opgelost. Ik heb er een typedef van gemaakt, toen gaf hij een boel errors. Na het verwijderen van de typedef deed de compiler niet meer moeilijk. Ik vermoed dat het ergens een spatie te veel of te weinig was of een non printable char? (kan dat?)

Anyway, 't is opgelost.

  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 09-04 22:08
char(160) aka non-breaking space is wel eens lastig. De tweede GCC melding suggereert (gezien de quotes) dat de typename met de daaropvolgende spatie als typename bij het type hoorde?

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein