Ternärer Operator ohne den mittleren Ausdruck

8

Ich habe vor kurzem erkannt, dass Sie den ternären Operator in GCC und Clang ohne eine Mitte verwenden können ( ?: oder ? : funktioniert) und es wird den ersten Ausdruck in die Mitte einfügen:

%Vor%

Wo ist das im Standard? Ich schaute und sah nichts davon.

    
Czipperz 01.01.2016, 20:22
quelle

1 Antwort

11

Es ist nicht im Standard überhaupt .

Was Sie beobachten, ist eine GCC-Erweiterung: Ссылка

Wenn Sie es weglassen, wird der Wert vor der kontextuellen Konvertierung in bool vom ersten Operanden übernommen.
Der Wert für die Erweiterungen liegt darin, dass sich die Nebenwirkungen nicht wiederholen und die Größe der Quellcodes reduziert wird.

    
Deduplicator 01.01.2016, 20:26
quelle