auto ref is on the docket
Daniel N via Digitalmars-d
digitalmars-d at puremagic.com
Tue Jun 23 06:52:18 PDT 2015
On Tuesday, 23 June 2015 at 11:03:10 UTC, Jonathan M Davis wrote:
> Which does not generally work in D. It can in some cases, but
> const is so restrictive in D that you simply cannot use it just
> because you don't intend to mutate a variable. Too many types
> won't work with const, and many types _can't_ work with const.
> const has its uses, but you have to be careful with it, and in
> the general case, that means that you can't put it on function
> parameters just to indicate that the function argument is not
> going to mutated.
>
> - Jonathan M Davis
Thus the solution cannot require const.
auto is worse because, if you later decide you need to add a
template parameter then the meaning is changed and you get a
_hidden_ performance issue.
Thus requiring neither auto nor const is the least evil of the
above.
You could always use comments, or even dummy aliases to make the
code self-documenting:
alias view(T...) = T;
void example(ref view!int i) {}
More information about the Digitalmars-d
mailing list