On Wed, 06 Oct 2010 16:21:08 +0400, Lars T. Kyllingstad
<pub...@kyllingen.nospamnet> wrote:
On Wed, 06 Oct 2010 07:39:48 -0400, Steven Schveighoffer wrote:
On Wed, 06 Oct 2010 06:16:45 -0400, Lars T. Kyllingstad
<pub...@kyllingen.nospamnet> wrote:
[...]
Secondly, if the above is not true, how can I verify that the array in
the following piece of code isn't allocated and/or copied anew every
time the program runs, or even worse, every time foo() is called?
void foo()
{
static immutable int[3] = [1, 2, 3];
}
Actually, static probably will prevent it from being created every time
foo is called. I don't think there's a way to prevent it from being
created every time the program is run.
Does anyone know a way to verify this? (If it is in fact created every
time the function runs, I'll change it to a module-level array
initialised in a 'static this()' instead.)
It's static so it allocates only once. But the following:
immutable int[3] = [1, 2, 3];
always allocates, but I see no reason why it should.