structs are now lvalues - what is with "auto ref"?
Jonathan M Davis
jmdavisProg at gmx.com
Mon Dec 24 09:57:25 PST 2012
On Monday, December 24, 2012 12:37:54 Andrei Alexandrescu wrote:
> An important smoking gun is C++'s min(), which is allows writing unsafe
> code without casts.
> const int& haveANiceDay = min(4, 5);
But what does that have to do with const& for function parameters? I can agree
that it's bad for local variables like that, but such references aren't legal
in D anyway - const or not. const& on function paramters merely avoids a copy,
and as long as you don't take the reference of that parameter (which you can't
do in D) and then assign it to something or return it, it can't survive past
the point that it leaves scope.
I get the impression that your complaints about rvalue references stem from
issues with them that have nothing to do with function parameters, and it's
the function parameters that everyone cares about.
That being said, I don't think that having const ref take rvalues is a good
solution for D given how strict its const is - rather I think that we should
figure out how to make auto ref work for non-templated functions - but I fail
to see how making const ref accept rvalues would really cause any problems.
- Jonathan M Davis
More information about the Digitalmars-d-learn