API

Yota via Digitalmars-d digitalmars-d at puremagic.com
Tue May 6 10:01:15 PDT 2014


On Tuesday, 6 May 2014 at 00:10:36 UTC, Andrei Alexandrescu wrote:
> So I'm looking at creation functions and in particular creation 
> functions for arrays.
>
> 1. Follow the new int[n] convention:
>
> auto a = allok.make!(int[])(42);
> assert(a.length == 42);
> assert(a.equal(repeat(0, 42));
>
> 2. Follow the [ literal ] convention:
>
> auto a = allok.make!(int[])(42);
> assert(a.length == 1);
> assert(a[0] == 42);

I'm not a fan of the dual purposing at all.  When I see 
"a.make!T(x, y, z)",
I expect that to be identical to "new T(x, y, z)", whether T is 
an array type
or not.  The special case will cause more confusion than aid.  
I'd much prefer
separate functions, as others had suggested. 
"a.zeroArray!int(dim1, dim2)"


More information about the Digitalmars-d mailing list