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. Also, I don't see how someone could arrive at the above solution without showing up here and asking first.

Why not just add "rvref" to D?

D is already bloated.

Some of the discussions about auto ref seem to have arrived at the idea that adding a keyword is the only way fix this without changing existing behavior or adding new behavior that would share syntax with old behavior and be confusing.

Anyways, for my purposes, templates will do fine, so thanks!

  Bit

Reply via email to