On Fri, 30 Jul 2010 15:56:36 -0400, Jonathan M Davis <jmdavisp...@gmail.com> wrote:

On Friday, July 30, 2010 10:14:45 Steven Schveighoffer wrote:
I think a function to do it is fine, like makeArray('-', 5);

Well, creating a function for producing an array literal and returning it using templates and string mixins wouldn't be all that hard, but if you want to create a dynamic array of arbitrary size at runtime, that's not going to work, and a makeArray() function would have exactly the same tools that you have to create
an array of all the same value.

The function would call gc_malloc directly, which does not initialize the requested memory. Actually, it would call a new run time function that I will write, which would initialize the array length also.

So, it's not going to be any more efficient that
what you can do.

int[] a = new int[](x);
a[] = val;

_should_ be fairly easily optimized by the compiler and thus really should be
optimized down to an initialization rather than an initialization and an
assignment.

It's not. The only runtime functions available to the compiler look like this:

_d_newarrayT(TypeInfo ti, size_t length);

-Steve

Reply via email to