typedef <-> #define



  • Hallo!
    In Visual C++ stoße ich auf folgendes Verhalten:

    mit

    typedef std::map<Key, void*> base;
    base::iterator iter;
    

    erhalte ich den
    Fehler

    H:\projects\Data\data.cpp(52) : error C2248: "iterator" : Kein Zugriff auf public typedef, dessen Deklaration in der Klasse "std::map<int,void *,struct std::less<int>,class std::allocator<void *> >" erfolgte
    d:\microsoft visual studio\vc98\include\map(50) : Siehe Deklaration von 'iterator'

    Verwende ich stattdessen

    #define base std::map<Key, void*>
    base::iterator iter;
    

    geht alles klar.

    Bei std::vector tritt der Fehler gar nicht auf.
    Woran liegt das?

    Alex



  • LionAM schrieb:

    Woran liegt das?

    Maybe an deinem alten Visual 🙂 ...


Anmelden zum Antworten