"Jonathan M Davis" <jmdavisp...@gmx.com> wrote in message news:mailman.306.1329166430.20196.digitalmars-d-le...@puremagic.com... > Ideally perhaps, but I expect that that's not true, because operator > overloading is done via lowering. > > foo() ~ bar() > > would become > > opBinary!"~"(foo(), bar()); >
While your point is still correct, this will generally be lowered to foo().opBinary!"~"(bar()) or bar().opBinaryRight!"~"(foo()) Both of which do have a defined order of evaluation.