Interne Umwandlung short->bool - wie?
-
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 Fehlermeldungenedit: 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.
-
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 -
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 anwarum 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)