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