Problem mit MAP



  • hi.
    ich habe eine map:

    std::map<std::string, double> table;
    

    und der gibt folgende fehlermeldungen aus: http://archivar.piranho.com/namespace_taschenrechner.plg

    woran liegt das?



  • Hi,

    cool, bei meinem VC++ gibts sogar 77 Warnungen. der Dev-C++ meldet gar nichts. Kann das an der lustigen Implementation der STL bei Microsoft liegen?

    grüße Con@n



  • das sind WARNUNGEN und WARNUNGEN sind keine FEHLER

    er warnt nur, dass die namen zu lange fuer den debugger sind und deswegen fuer den debugger gekuerzt werden... diese warnung kann man getrost abschalten:

    #ifdef _MSC_VER
    #pragma warning(disable:4786)
    #endif



  • Original erstellt von Shade Of Mine:
    das sind WARNUNGEN und WARNUNGEN sind keine FEHLER

    *ergänz* Was aber nicht heißen sollte, dass man sie immer getrost ignorieren kann... 😉

    Original erstellt von Shade Of Mine:
    diese warnung kann man getrost abschalten

    Kommt drauf an. Könnte es nicht zu einem Konflikt kommen wenn er noch so nen ähnlichen langen Klassennamen hat.

    Also z.B.

    hier wird jetzt abgeschnitten
                          |
                          V
    class HalloTest...sonstwas
    class HalloTest...sonstnochwas
    
    Die Klassennamen wären nach dem abschneiden gleich...
    

    Oder ist der Compiler so intelligent, dass er das merkt und darauf irgendwie reagieren kann (also so ähnlich etwa wie die kurzen Dateinamen unter DOS)?



  • ich denke schon, dass der debugger (und es ist nur eine meldung fuer den debugger) hier klug genug ist zu unterscheiden...

    und selbst wenn nicht - was willst du machen??



  • aber wo ist bei mir ein name zu lang?

    std::<std::string, double> table;
    

    ich seh nichts, dass laenger als 5 zeichen ist. und das liegt wohl noch im rahmen 😉

    Original erstellt von Shade Of Mine:
    #ifdef _MSC_VER
    #pragma warning(disable:4786)
    #endif\

    das gibt "nur noch" 77 warnungen: http://archivar.piranho.com/vokabeltrainer.plg

    [ Dieser Beitrag wurde am 14.06.2003 um 16:25 Uhr von archivar editiert. ]



  • Original erstellt von archivar:
    ich seh nichts, dass laenger als 5 zeichen ist. und das liegt wohl noch im rahmen 😉

    std::_Tree,std::allocator > >,std::map,std::allocator >,std::less,std::allocator,std::allocator > > >::_Kfn,std::less,std::allocator,std::allocator > > >

    das hat aber zuviele zeichen - und deshalb warnt er.

    schliesslich darf eine klasse wie zB map<> ja auch member haben - und da wirds dann halt n bisschen lang



  • Original erstellt von archivar:
    das gibt "nur noch" 77 warnungen

    hast du diese 3 zeilen vor alle includes geschrieben in allen dateien?



  • meine ganze datei:

    // vokabeltrainer.cpp : Defines the entry point for the console application.
    //
    
    #ifdef _MSC_VER
    #pragma warning(disable:4786)
    #endif
    
    #include "stdafx.h"
    #include<iostream>
    #include<map>
    #include<string>
    
    int main(int argc, char* argv[])
    {
        std::map<std::string, double> table;
        return 0;
    }
    

    sthet also vor allen datein und includes...


Anmelden zum Antworten