On Tue, Jan 04, 2000 at 05:55:26PM +0100, Konrad Rosenbaum wrote:
Hallo,
dieses Proggy: if(printf("This compiler does ")||printf("not ")) printf("shorten logical expressions.\n"); hat diesen Output: This compiler does shorten logical expressions. (das "not" fehlt) Wenn man mit G++ und Klassen arbeitet wird die Reihenfolge umgekehrt bei int bleibt es wie oben.
Frage: kennt jemand Optionen, die die Reihenfolge des ||-Operators beeinflussen (g++) bzw. erzwingen, dass beide Operanden ausgefuehrt werden (gcc und g++).
Wird es nicht geben. Du musst beide explizit evaluieren, da laut C-Standard bei || und && nur ausgewertet wird, soweit es nötig ist.
Kannst du mal ein Beispiel bringen, wo das bei "g++ und Klassen" anders sein soll, also sozusagen || von rechts her ausgewertet wird. Ich kann mir sowas nicht vorstellen.
Reinhard