The Daily WTF
-
[cpp]
bool garbageCan = blockHead() != 0 ? true : false;
// macht man freundlicherweise zu
bool grabageCan = blockHead();
[/cpp}MfG SideWinder
-
// macht man freundlicherweise zu bool garbageCan = blockHead() != 0;
-
// macht man freundlicherweise zu bool garbageCan = !!blockHead();aber wozu?
-
garbageCan schrieb:
// macht man freundlicherweise zu bool garbageCan = blockHead() != 0;Auch wenn's logischer ist, grade beim Ueberfliegen von viele Code kann meine Loesung besser lesbar sein.
Ausserdem fallen Fehler wie
bool garbageCan = blockHead() = 0; // Fehler?dann sofort auf:
bool garbageCan = blockHead() = 0 ? true : false; // Fehler!Das nennt sich: Gekennzeichneter Boolescher Ausdruck.
-
Power Off schrieb:
Das nennt sich: Gekennzeichneter Boolescher Ausdruck.
das nennt sich Gekennzeichneter Müll.
-
Was soll das '=' an der Stelle überhaupt? Ich bin ja grundsätzlich einem ?: ganz und gar nicht abgeneigt und benütze es auch des öfteren, aber:
bool b = returnBool(); // ist ja wohl lesbarer, als: bool b = returnBool() == true ? true : false;
MfG SideWinder
-
Power Off schrieb:
bool garbageCan = blockHead() = 0 ? true : false; // Fehler!Boah ist das geil, so lesbaren Code möchte ich irgendwann auch mal schreiben können.
Du bist echt der härteste.

Power Off schrieb:
Ausserdem fallen Fehler wie
bool garbageCan = blockHead() = 0; // Fehler?dann sofort auf:
Mir fallen Compiler-Fehler eigentlich immer auf.
-
Das nennt sich: Gekennzeichneter Boolescher Ausdruck.
Das nennt sich WTF oder Trollversuch.
-
lol
#ifndef _IPProcess_h_ #define _IPProcess_h_ #undef private #define private public #include class IP_MTProcess : public MTProcess { public: IP_MTProcess(pfnDoubleStatic func, void* arg1) : MTProcess(func, arg1, NULL) {} ~IP_MTProcess() { CloseHandle(_tid); } }; #undef private #define private private #endif // _IPProcess_h_
-
Optimizer schrieb:
Power Off schrieb:
Ausserdem fallen Fehler wie
bool garbageCan = blockHead() = 0; // Fehler?dann sofort auf:
Mir fallen Compiler-Fehler eigentlich immer auf.
Wenn Du mehr Ahnung haettest, wuerdest Du nicht so einen Quark schreiben!
int boink; int& blockHead( void ) { return boink; } bool garbageCan = blockHead() = 0; // ist Compiler egal
-
Power Off schrieb:
Optimizer schrieb:
Power Off schrieb:
Ausserdem fallen Fehler wie
bool garbageCan = blockHead() = 0; // Fehler?dann sofort auf:
Mir fallen Compiler-Fehler eigentlich immer auf.
Wenn Du mehr Ahnung haettest, wuerdest Du nicht so einen Quark schreiben!
int boink; int& blockHead( void ) { return boink; } bool garbageCan = blockHead() = 0; // ist Compiler egal
Don't feed the troll.
Bye, TGGC
-
Apropos Quark: Wofür war das void in den Klammern gleich noch da?
-
Power Off schrieb:
int boink; int& blockHead( void ) { return boink; } bool garbageCan = blockHead() = 0; // ist Compiler egalaber das schreibt niemand.
bool garbageCan = blockHead();oder
bool garbageCan = !blockHead();also muß auch keiner Gekennzeichneten Müll benutzen.
-
Walli schrieb:
Apropos Quark: Wofür war das void in den Klammern gleich noch da?
In ANSI C++ besagt es, dass eine Funktion keine Parameter hat. Stelle im Standard kannst Dir selber raussuchen.

-
Power Off schrieb:
Optimizer schrieb:
Power Off schrieb:
Ausserdem fallen Fehler wie
bool garbageCan = blockHead() = 0; // Fehler?dann sofort auf:
Mir fallen Compiler-Fehler eigentlich immer auf.
Wenn Du mehr Ahnung haettest, wuerdest Du nicht so einen Quark schreiben!
int boink; int& blockHead( void ) { return boink; } bool garbageCan = blockHead() = 0; // ist Compiler egal
Ich bin stolz auf dich, mein Sohn. Wenn ich dir noch einen Tipp geben darf: du könntest auch ne Klasse benutzen und den operator() überladen. Dann wird dein Code endgültig noch lesbarer.
-
volkard schrieb:
aber das schreibt niemand.
Das sagst Du. Tippfehler macht jeder mal, und dann findet er se nimmer.
Haette er einen gekennzeichneten Booleschen Ausdruck verwendet, waere ihm spaetens beim Tippen des "?" oder beim Lesen spaeter aufgefallen, dass da "=" statt "==" steht.
EDIT: In Java wurde das Problem uebrigens dadurch elegant geloest, dass "if" z.B. grundsaetzlich nur boolesche Ausdruecke akzeptiert.
-
Power Off schrieb:
Walli schrieb:
Apropos Quark: Wofür war das void in den Klammern gleich noch da?
In ANSI C++ besagt es, dass eine Funktion keine Parameter hat. Stelle im Standard kannst Dir selber raussuchen.

ist das die sprache, in der man
int& blockHead( void ) { return boink; }schreiben kann?
warum benutzt du ANSI C++ und nicht DIN C++ wie die ganzen anderen?
und warum schreibste nicht einfachint& blockHead() { return boink; }also warum das void?
-
Power Off schrieb:
Das sagst Du. Tippfehler macht jeder mal, und dann findet er se nimmer.
aber es ist doch unfug, code zu bauen, der tippfehler vermeidet, die man nicht machen würde, wenn man nicht den tippfehlervermeidenden code bauen müßte.
Power Off schrieb:
Haette er einen gekennzeichneten Müll verwendet, waere ihm spaetens beim Tippen des "?" oder beim Lesen spaeter aufgefallen, dass da "=" statt "==" steht.
in den rechten teil einer initialisierung schreibt man keine vergleichsoperatoren rein, tue ich wenigstens nicht.
-
volkard schrieb:
Power Off schrieb:
Walli schrieb:
Apropos Quark: Wofür war das void in den Klammern gleich noch da?
In ANSI C++ besagt es, dass eine Funktion keine Parameter hat. Stelle im Standard kannst Dir selber raussuchen.

ist das die sprache, in der man
int& blockHead( void ) { return boink; }schreiben kann?
warum benutzt du ANSI C++ und nicht DIN C++ wie die ganzen anderen?
und warum schreibste nicht einfachint& blockHead() { return boink; }also warum das void?
ANSI/ISO/DIN/BS C++ : alles dasselbe.
volkard schrieb:
also warum das void?
Weil's im Standard eingefuehrt wurde, damit niemand mehr leere Parameterlisten ohne "void" schreibt.
-
volkard schrieb:
in den rechten teil einer initialisierung schreibt man keine vergleichsoperatoren rein, tue ich wenigstens nicht.
Hm.