More on C++ stack arrays
Namespace
rswhite4 at googlemail.com
Wed Oct 23 06:59:45 PDT 2013
On Sunday, 20 October 2013 at 16:33:35 UTC, Walter Bright wrote:
> On 10/20/2013 7:25 AM, bearophile wrote:
>> More discussions about variable-sized stack-allocated arrays
>> in C++, it seems
>> there is no yet a consensus:
>>
>> http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3810.pdf
>>
>> I'd like variable-sized stack-allocated arrays in D.
>
> They're far more trouble than they're worth.
>
> Just use:
>
> auto a = new T[n];
>
> Stack allocated arrays are far more trouble than they're worth.
> But what about efficiency? Here's what I often do something
> along the lines of:
>
> T[10] tmp;
> T[] a;
> if (n <= 10)
> a = tmp[0..n];
> else
> a = new T[n];
> scope (exit) if (a != tmp) delete a;
>
> The size of the static array is selected so the dynamic
> allocation is almost never necessary.
Another idea would be to use something like this:
http://dpaste.dzfl.pl/8613c9be
It has a syntax similar to T[n] and is likely more efficient
because the memory is freed when it is no longer needed. :)
More information about the Digitalmars-d
mailing list