Appender is ... slow

monarch_dodra via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Fri Aug 15 11:05:53 PDT 2014


On Friday, 15 August 2014 at 16:51:20 UTC, Philippe Sigaud wrote:
> On Friday, 15 August 2014 at 16:48:10 UTC, monarch_dodra wrote:
>> Make sure you don't use that if your type has elaborate 
>> construction, or assumes a certain initial state (unless you 
>> are actually emplacing your objects of course).
>
> Hmm, what's elaborate construction? They are classes and have 
> constructors, of course. I assumed that this produced only 
> null's in the array.

Actually, my statement was inaccurate. More specifically, never 
use anything that wasn't first properly initialized. Note that in 
some cases, "operator=" is itself elaborate, meaning it will also 
read data, so that's not a valid method of initialization.

uninitializedArray simply creates an array with unspecified data 
in it.

You *could* just use "new" instead. It's not really any slower, 
and has the advantage of being certifiably safe.


More information about the Digitalmars-d-learn mailing list