%u:
> What is the fastest way to fill a static multidimensional array?
If you want a safe solution, then you probably need nested loops, and a array[]
= x; in the inner loop (such loops may be generated with a string mixin too).
Otherwise if speed is more important, fixed sized multidimensional arrays are
stored in a contiguous way in D, so you may use a memset or something like:
import std.stdio: writeln;
void main() {
int[5][4] mat;
(cast(int[mat[0].length * mat.length])mat)[] = 10;
writeln(mat);
}
Or even:
(cast(int[mat.sizeof / int.sizeof])mat)[] = 10;
(If necessary you may use a recursive template trick to find the type of the
basic item of the array).
Bye,
bearophile