Typenamen-Problem
-
template <class C> A : public B { public: typedef map<string, int> map_type; void Test(); private: map_type mymap; string mystring; } template <class C> A<C>::Test() { mymap.insert(map_type::value_type ("eins",1)); }führt zur Fehlermeldung:
error: dependent-name std::map< ... >::value_type is parsed as a none-type but instantiation yields a type

Hat bei gcc 3.3 immer geklappt, jetzt bei gcc 4.0 wird es nicht mehr angenommen ... wie geht es richtig?
-
geht das?
template <class C> A<C>::Test() { mymap.insert(typename map_type::value_type ("eins",1)); }