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