Ich erkannte vor kurzem, dass Sie den ternären Operator in GCC und Klirren ohne Mitte (?:
oder ? :
Werke) verwenden können, und es wird der erste Ausdruck in der Mitte ein:Ternary Operator ohne den mittleren Ausdruck
// outputs 2
cout << (2 ?: 4);
// outputs 3
cout << (0 ? : 3);
Wo ist das im Standard? Ich schaute und sah nichts davon.
Es wird nicht der erste Ausdruck in die Mitte eingefügt. Es verwendet das _result_ des ersten Ausdrucks in der Mitte. Wenn also der erste Ausdruck eine Funktion ist, wird die Funktion nicht zweimal ausgeführt. – ldanilek