About ref used for performance reasons with struct

Peter Alexander peter.alexander.au at gmail.com
Mon Feb 11 15:16:54 PST 2013


On Monday, 11 February 2013 at 06:52:33 UTC, deadalnix wrote:
> I'm thinking about it for a while now and I'm now convinced 
> that we should allow the compiler to do that job for us. Let me 
> explain.

struct Foo { int x, y; }

class Bar
{
     Foo[] foos = [Foo(1, 2)];

     void swap(const(Foo) f)
     {
         foos[0].x = f.y;
         foos[0].y = f.x;
     }
}

void quux(Bar bar, const(Foo) foo)
{
     bar.swap(foo);
}

Are the foo parameters allowed to be passed by ref in both these 
functions? I see no reason why not from your criteria, but doing 
so changes the program.


More information about the Digitalmars-d mailing list