On Sunday, 6 April 2014 at 19:48:37 UTC, JR wrote:
On Sunday, 6 April 2014 at 09:52:04 UTC, monarch_dodra wrote:
An Dynamic Array is merelly a "fat pointer" that holds both pointer and length. There is no need to create or new a Dynamic Array.

new allows for setting the length immediately, though.

Right, but what I'm getting at, in regards to the original question:
"What's the syntax for a new empty dynamic array"

You don't "new" the dynamic array. Technically, you just allocate memory, and then have your *slice* reference that memory. The slice itself is not newed.

An empty slice is merely a slice that reference no data. It just "exists" and is not "newed".

This is in contrast to, say, classes, where you *must* do "A a = new A(args)" to initialize and use it.

And yet even more in contrast to types that "look" like value types, but are "secretly" implemented as reference types, without the "new" keyword: Types that use reference semantic, but without the "new" keyword. These include: AA, Appender, Array, and a couple others.

     auto arr = new int[](99);
     // arr.length = 99;  // avoided this

Does doing it in two steps allocate twice?

Nope. That's perfectly valid (and recomended).

Reply via email to