On Wednesday, 9 April 2014 at 16:46:00 UTC, monarch_dodra wrote:
I *think* there was some miscommunication here:
auto arr = new int[](99);
Is perfectly valid, and the recommended way to do it (provided
you know how much you want to allocate when constructing).
Looks like it. :)
The flow of conversation reads to me like so:
1. "There's no need to new or create a dynamic array"
2. "But newing allows for setting the length immediately though.
<example>. Does doing it in two steps (declaring, then setting
length) allocate twice?"
3. "No, [doing it in two steps] is perfectly valid (and
recommended), [with valid meaning you're not double-allocating
for no reason]"
4. "I see, but if [doing it in two steps] is recommended and
there's no need to new, you'll have to agree that newing is still
alluring etc etc"
My main pet peeve remains array literals being dynamic.
What do you mean? Perhaps you meant you wanted to allocate a
static array on the heap? EG, "int[99]* p = new ???;"
Otherwise, I don't really understand the statement.
Different topic, but I mean !is(typeof([1, 2, 3]) == int[3]).
Nothing that can't be danced around, yet a peeve nonetheless.