Eliminate redundancy of dup/idup
Timon Gehr
timon.gehr at gmx.ch
Sun Sep 9 10:26:42 PDT 2012
On 09/09/2012 07:06 PM, kenji hara wrote:
> An advantage of generic dup() is to allow copying of const arrays.
>
> void main()
> {
> class C {}
> const C[] ca = new C[3];
> //ca.dup;
> // Error: cannot implicitly convert element type const(C) to
> mutable in ca.dup
> //ca.idup;
> // Error: cannot implicitly convert element type const(C) to
> immutable in ca.idup
> ca.dup();
> // result is const(C[])
> }
>
> ----
>
> According to what I remember, the name 'idup' had been discussed in
> the beginning of D2, but it had been disappeared from the need for
> idup. But it is still oddly name.
>
> Using:
> auto iarr = marr.idup;
> Instead of :
> immutable iarr = marr.dup(); // In the future, () would not be necessary
>
> Is really handy? Yes, it is 6(or 4) characters shorter. But I can't
> see it *handy*.
What you are missing is that the two code segments are not equivalent.
More information about the Digitalmars-d
mailing list