В D все литералы массива являются динамическими массивами и поэтому выделяются сборщиком мусора.
Даже в этом простом примере:
int[3] a = [10, 20, 30];
Массив выделяется в куче, а затем копируется в a
.
Как вы должны инициализировать статический массив без выделения кучи?
Вы можете сделать это вручную:
int[3] a = void;
a[0] = 10;
a[1] = 20;
a[2] = 30;
Но это в лучшем случае утомительно.
Есть ли способ лучше?