D Logic bug

Kagamin spam at here.lot
Fri Oct 12 10:06:53 UTC 2018


On Thursday, 11 October 2018 at 23:17:15 UTC, 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:
>
> a ? b : c = d
>
> In D it would be:
>
> (a ? b : c ) = d
>
> And in C++ would be:
>
> a ? b : (c = d)

That's https://issues.dlang.org/show_bug.cgi?id=14186


More information about the Digitalmars-d mailing list