Mariusz `shd` Gliwiński:

As described on http://wiki.dlang.org/Dense_multidimensional_arrays we can have dense and jagged arrays.

Built-in D arrays are always dense (unless you consider the associative arrays). That page should name them "contiguous". Sparse arrays are another thing, and they need to be implemented in libraries:
http://en.wikipedia.org/wiki/Sparse_array


Is it possible to check if an array is jagged or not by using some template like std.traits : isArray ?

To tell if a dynamic array is jagged you need a run-time tests, something like this:

foreach (const row; matrix)
    assert(row.length == matrix.front.length);


If you want to tell apart a regular dynamic array from the contiguous one, you have to look at the array structure, all dimensions but the last one need to be fixed-sized arrays. There are traits to tell apart fixed sized arrays and dynamic ones, but you need a recursive template. Why do you need this information? So far I have not needed it.

Bye,
bearophile

Reply via email to