On Tuesday, 5 May 2015 at 14:14:51 UTC, bitwise wrote:
On Tue, 05 May 2015 00:20:15 -0400, rsw0x <anonym...@anonymous.com> wrote:
it does, auto ref can bind to both lvalues and rvalues. Create the function with an empty template like so,

import std.stdio;

struct S{
}

void Foo()(auto ref S s){
}

void main(){
        S s;
        Foo(s);
        Foo(S());
}

There might be other ways that I'm unaware of.

Interesting.. Has this always worked? Theres a couple of forum conversations about trying to get "auto ref" to work for non-templates. The main problem seems to be that auto ref wont work for virtual functions.

I know its worked for a while, I often use it when I'm too lazy to put attributes in and just have the templates infer them for me ;)

Also, I don't see how someone could arrive at the above solution without showing up here and asking first.


You're probably right, maybe someone should submit a PR to https://github.com/p0nce/d-idioms/

Reply via email to