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.

Reply via email to