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));
      }
    

Anmelden zum Antworten