On 3/31/15 12:18 AM, Orvid King wrote:
I might be a bit confused here, but from what you're saying: b += a++; and b += ++a; Are doing the same thing in DMD?
No. Lowering of e1 += e2++ is:
e1 += e2++
-\>
(ref a, b) { a = (cast(typeof(a)) (a + b); }(
e1,
(ref a) { auto x = a; ++a; return x; }(e2)
)
whereas lowering of e1 += ++e2 is:
e1 += ++e2
-\>
(ref a, b) { a = (cast(typeof(a)) (a + b); }(
e1,
(ref a) { ++a; return a; }(e2)
)
Andrei
