Interne Umwandlung short->bool - wie?



  • Bau ne Funktion, die das Ergebnis der anderen Funktion als Parameter hat und returne jenachdem was true und was false ist das jeweils richtige

    mfg
    Glamdring



  • zu spät 😞



  • Man könnte auch schreiben:

    if(foo()-1)
    


  • Ich seh die Logik irgendwie auch nicht ... warum gerade 1 für Erfolg? Ist 0 auch ein Fehlercode? Mir persönlich wärs egal, weil ich von der impliziten Umwandlung nach bool nicht besonders viel halte 🙂



  • d.h. ich kann, wenn ich verschiedene fehlercodes haben möchte, nicht

    if(!foo()) { /* Fehler */ }
    

    nutzen?

    Exceptions wollte ich bei meinem Projekt nicht nutzen, da ich in diesem Forum jede Menge schlechter Meinungen gelesen habe (Performance, etc.), obwohl ich sie von der Sache her besser finde, da ich vor allem die Möglichkeit Klassen als Exceptions zu nutzen gut finde. Nachteilig allerdings auch der größere Aufwand für den Nutzer der Klasse.



  • switch (foo())
    {
    case 0:
        std::cout << "alles okay!" << std::endl;
        break;
    case 1:
        std::cout << "Nichts ist okay!" << std::endl;
        break;
    case 2:
        std::cout << "na Bluescreen?!" << std::endl;
        break;
    case 3:
        std::cout << "usw..." << std::endl;
        break;
    }
    

    oder

    short x = foo();
    
    if (x == 0)
    {
    }
    else if (x == 1)
    {
    }
    else if (x == 2)
    {
    }
    usw...
    


  • noch vergessen:

    umwandlung: short -> bool

    if (foo() ? true : false)
    {
    }
    

    casten kannste knicken



  • schade eigentlich!

    dann werde ich das normale != 1 verwenden... Was tut man nicht alles für ein
    bisschen genauere Fehlermeldungen 😉

    edit: hab jetzt erst shades post gelesen.... vielleicht werde ich doch noch die exceptions nutzen... muss mal gucken wie viel aufwand es ist alles zu ändern 🙄



  • EnERgYzEr schrieb:

    Exceptions wollte ich bei meinem Projekt nicht nutzen, da ich in diesem Forum jede Menge schlechter Meinungen gelesen habe (Performance, etc.), obwohl ich sie von der Sache her besser finde, da ich vor allem die Möglichkeit Klassen als Exceptions zu nutzen gut finde. Nachteilig allerdings auch der größere Aufwand für den Nutzer der Klasse.

    1. exception haben theoretisch keinen overhead, praktisch gesehen leider dennoch einen kleinen 😞
      allerdings hast du mit deiner jetztigen 'lösung' auch einen ziemlichen overhead: sehr viele ifs

    2. der aufwand mit exceptions ist geringer als ohne



  • EnERgYzEr schrieb:

    dann werde ich das normale != 1 verwenden... Was tut man nicht alles für ein bisschen genauere Fehlermeldungen 😉

    riesen blödsinn.
    0 heisst: kein Fehler
    !0 heisst: Fehler - und gibt den fehlercode an

    warum willst du es anders machen?



  • argh!!! 😡 (über mich selbst ärger)

    ich war die ganze zeit in gedanken noch bei der if(!funk()) lösung. und das geht ja nur, wenn 1 == Fehler...

    so jetzt gibts exceptions 🤡



  • EnERgYzEr schrieb:

    so jetzt gibts exceptions 🤡

    Eine weise Entscheidung. 😉



  • es hat doch gar nicht mal sooo lange gedauert alles umzustellen (s. zeit)
    🕶 🕶 👍


Anmelden zum Antworten