I've been using the multidimensional arrays for a while now, but recently I've run into a problem w.r.t. optimization:

import std.stdio;
import unstd.multidimarray;

void main() {
  MultidimArray!(double, 3) arr;
  arr = multidimArray!double([1,2,42]);
  writeln(arr.lengths);
}

If I compile with 'dmd multidimtest.d unstd/multidimarray.d', I get [1,2,42], as expected, but when I compile in release mode 'dmd multidimtest.d unstd/multidimarray.d -release' I get [0,0,0]. Any ideas what might cause this?

Also, when I compile with -w (which I normally prefer) I get a list of errors of the type

unstd/multidimarray.d(101): Warning: calling unstd.multidimarray.MultidimArray!(double, 3LU).MultidimArray.this without side effects discards return value of type inout(MultidimArray!(double, 3LU)), prepend a cast(void) if intentional

I've acted on these errors in the version I use for my HPC test code, and I have not noticed any deleterious effects; would you accept a pull request to fix these?

Kind regards,

Stefan Frijters

Reply via email to