<div class="gmail_quote">On 16 March 2012 19:53, Timon Gehr <span dir="ltr"><<a href="mailto:timon.gehr@gmx.ch">timon.gehr@gmx.ch</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
On 03/16/2012 06:33 PM, Manu wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
On 16 March 2012 18:37, Andrei Alexandrescu<br>
<<a href="mailto:SeeWebsiteForEmail@erdani.org" target="_blank">SeeWebsiteForEmail@erdani.org</a> <mailto:<a href="mailto:SeeWebsiteForEmail@erdani.org" target="_blank">SeeWebsiteForEmail@<u></u>erdani.org</a>>><div class="im">
<br>
wrote:<br>
<br>
    Actually, as has been mentioned, swizzling can be done very nicely<br>
    inside the language.<br>
<br>
<br></div>
How?<br>
</blockquote>
<br>
Use opDispatch.<br>
<br>
a = a.yxwz;</blockquote><div><br></div><div>The simplest possible example (I've done this is std.simd)... but if I have a few different loosely related things?</div><div>My personal most frequent problem case is collision/physics. pos, 't', velocity, intersectionFlag, intersection target pointer, etc.. lots of loosely related stuff, always results in inefficient function calls in some of the hottest code in the engine.</div>
<div> </div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
DMD does that for you (Walter is the inventor of NRVO).<br></blockquote><div> </div><div>Which is awesome for returning larger structs, but not good for returning just a couple of unrelated things that will persist as locals in the calling function.</div>
</div>