On Thursday, 11 October 2018 at 23:29:05 UTC, Steven
Schveighoffer wrote:
On 10/11/18 7:17 PM, Jonathan Marler wrote:
I had a look at the table again, looks like the ternary
operator is on there, just called the "conditional operator".
And to clarify, D's operator precedence is close to C/C++ but
doesn't match exactly. This is likely a result of the grammar
differences rather than an intention one. For example, the
"Conditional operator" in D actually has a higher priority
than an assignment, but in C++ it's the same and is evaluated
right-to-left. So this expression would be different in C++
and D:
Not in my C/D code. It would have copious parentheses
everywhere :)
Good :)
That case is actually very strange, I don't know if it's
something that's really common.
Yes, that explains why myself, Jonathan Davis and certainly
others didn't know there were actually differences between C++
and D Operator precedence :) I wasn't sure myself but having a
quick look at each's operator precedence table made it easy to
find an expression that behaves differently in both.