With X not known at compile time:
auto arr = new int[][](X,X); for (int i=0;i<X;i++) for (int j=0;j<X;j++) arr[i][j] = -1;
Is there anything better for this? I mean, the program will fill the array with zeroes, just to overwrite all of them with -1. That's wasted execution time and doesn't feel D-ish to me.