DIP 1016 should use expression lowering, not statement lowering
Steven Schveighoffer
schveiguy at gmail.com
Thu Jan 31 03:26:05 UTC 2019
On 1/30/19 10:03 PM, Nicholas Wilson wrote:
> On Thursday, 31 January 2019 at 02:29:47 UTC, Steven Schveighoffer wrote:
>> I came up with this idea based on tempCString, but it doesn't work:
>>
>> So I don't get why it doesn't work. But if that was fixed, could be a
>> potential workaround without requiring a DIP.
>
> Thats nice! But it doesn't fix the problem that in generic code you
> don't know without checking if you need to do that. Also the template
> bloat.
Yeah, it could do this too:
auto ref rv(T)(auto ref T t)
{
static if(__traits(isRef, t)) return t;
else /* do the other stuff */
}
But yes, template bloat. Plus having to put rv on everything... would
suck. The DIP to me seems like it should be good with the clarification
of not applying to lvalue -> rvalue auto translations.
-Steve
More information about the Digitalmars-d-announce
mailing list