%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

Reply via email to