|
|
|
|
|
by kazinator
2941 days ago
|
|
Lisp is unambiguous, whereas: x = a ? b : c;
Oops; that assigns x = a, and tests it. Not if that = is that of an initializer, though: int x = a ? : b : c;
so now we have an expression that changes meaning if we have to split the initialization off into an assignment.You're often better off if you put it behind a macro: #define IF(X, Y, Z) ((X) ? (Y) : (Z))
In C coding, a lot of ternary action happens behind the curtain of preprocessing, where expression is almost fully parenthesized. |
|
CPP macros is red herring.