>> It is indeed capable of doing that :) But it only does it if you force
>> it to (e.g. via enum z). With auto it will perform 2 opBinaryRight calls
>> at runtime.
>
> Even when you compile with -O?
Yep.
It doesn't even seem to optimize away an unused variable:
void main()
{
auto z = 5.0 + 3*I;
}
Or I've done something wrong.