meaning of "auto ref const"?

Picaud Vincent via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Sun Dec 18 05:14:08 PST 2016


Reading std/bigint.d code:

https://github.com/dlang/phobos/blob/00c1cc3b0d354363793c8b419ce84da722578138/std/bigint.d#L589

I have seen this:

bool opEquals()(auto ref const BigInt y) const pure @nogc
{
    return sign == y.sign && y.data == data;
}

my problem is that I do not understand the role/meaning of "auto" 
in this context.

Moreover in the opCmp code, "auto" is not present anymore, which 
is an extra source of confusions for me.

int opCmp(ref const BigInt y) pure nothrow @nogc const
{
    // Simply redirect to the "real" opCmp implementation.
    return this.opCmp!BigInt(y);
}

What is the rational?

-----------------

Another interrogation for me, who come from C++, is how to 
translate into D:

template<typename T> void foo(T&& t);




More information about the Digitalmars-d-learn mailing list