forcing value to bool 'true' or 'false' (performance warning)



  • Hi,

    ich weiß dieses Topic gabs bestimmt schon X mal! Aber wie mache ich das am besten?

    long long myLongLong = 2704594;
    bool myBool = myLongLong;



  • long long my_longlong = 21939021;
    bool my_bool = static_cast<bool>(my_longlong);
    


  • oder

    int foo = 42;
    bool bar = foo != 0;
    


  • 0xdeadbeef schrieb:

    long long my_longlong = 21939021;
    bool my_bool = static_cast<bool>(my_longlong);
    

    ha ha ha, da kommt der fehler auch!



  • Erstmal ist das eine Warnung, kein Fehler. Und zweitens - wenn dein Compiler das nicht rafft, ist es verdammt noch mal nicht meine Schuld.



  • du ignorierst warnungen? man bist du ein schlechter coder.



  • du ignorierst warnungen? man bist du ein schlechter coder.

    Merkwürdige Aussage.
    Natürlich sollte man Warnungen beachten, aber direkt so eine Aussage zu treffen?
    Naja.



  • warning 3333333 schrieb:

    ha ha ha, da kommt der fehler auch!

    Suchst du eine Lösung für dein Problem, oder wartest du, bis jemand was vermeintlich Falsches postet?



  • Erstmal kam das "du ignorierst Warnungen" nicht von mir. Entweder hat sich da wer vertippt, oder ein Scherzbold war unterwegs.

    Was Warnungen angeht, die kuck ich mir schon an - aber wenn ein Compiler mich sogar bei nem expliziten Cast warnt, dann nehm ich sie nicht ernst. Ein anderes sehr gutes Beispiel ist die VC6.0-Warnung 4786, die du mit dem VC++6.0 immer kriegst, wenn du die STL benutzt. Natürlich ignoriere ich die Warnung, weil sie völlig hirnrissig ist.



  • Der Compiler warnt dich ja nur, aber wenn du weißt, dass es in diesem Fall fehlerfrei funktioniert, dann kannst du die Nachricht ignorieren.



  • Beispiel ist die VC6.0-Warnung 4786, die du mit dem VC++6.0 immer kriegst, wenn du die STL benutzt. Natürlich ignoriere ich die Warnung, weil sie völlig hirnrissig ist.

    nein, ist sie nicht ... aber das iss nen anderes thema 🙂
    Schoen isses aber auf keinen fall ! aber ein

    #pragma warning(disable 4786) // glaub so war die synthax ???
    #include <map>

    hilft, die traces beim compilieren wieder leserlich zu machen ....

    Ciao ...



  • Jetzt musst du mir bloß noch erklären, warum es besser ist, ne Warnung auszuschalten, als sie zu ignorieren...



  • wenn die warnung davor warnt, dass ein name zu lang ist(durch templates), wieso nicht? das ändert nichts an der richtigkeit des codes.

    das ignorieren hingegen ist schlecht, da man dadurch manchmal echte fehler übersieht.


Log in to reply