API

ed via Digitalmars-d digitalmars-d at puremagic.com
Mon May 5 19:40:37 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);
>
> For the second option, to create longer arrays:
>
> auto a = allok.make!(int[])(42, 43, 44);
> assert(a.length == 3);
> assert(a.equal(iota(42, 45));
>
> Nice ways to repeat things:
>
> auto a = allok.make!(int[])(42, repeat(43, 5), 44);
>
> And even nice ways to create holes for efficiency:
>
> auto a = allok.make!(int[])(42, uninitialized(5), 44);
>
>
> Destroy.
>
> Andrei

Does it have to be one function?

allok.makeLength!(int[])(42) as per new int[n] convention
allok.makeUsing!(int[])(42, 43, 44) as per literal convention



s/makeUsing/makeFilled -- or just makeFill
s/makeUsing/makeFrom
s/makeUsing/makeWith

etc. etc.

Cheers,
Ed


More information about the Digitalmars-d mailing list