On Tue, 07 Sep 2010 12:54:52 -0400, bearophile <bearophileh...@lycos.com>
wrote:
Steven Schveighoffer:
Note that the new appender uses heap data to store its implementation,
so
it's not as quick as it could be. This is per Andrei's requirement that
it be a reference type.
Thank you for your answers. But I don't fully understand your answer. Do
you mean it uses the Pimpl idiom, and allocates the struct on the heap?
Yes.
I use appender only when performance is important. The appender is a
hack useful because array appending in D is very slow (and even appender
is quite slow), so it must be first of all fast, otherwise it's not
useful.
Appending is as fast as possible, at the cost of an initial allocation.
Without this, the capacity would have to be stored inside the array, or be
aliased, which wouldn't work all that well.
I generally use appender inside the scope of a single function.
So unless I am missing something I think Andrei requirement is/was wrong.
An appender is an ouput range, so passing it into a function so the
function can output to it is a requirement.
-Steve