Как инициализировать статические массивы в D без выделения сборщика мусора?

В D все литералы массива являются динамическими массивами и поэтому выделяются сборщиком мусора.

Даже в этом простом примере:

int[3] a = [10, 20, 30];

Массив выделяется в куче, а затем копируется в a .

Как вы должны инициализировать статический массив без выделения кучи?

Вы можете сделать это вручную:

int[3] a = void;
a[0] = 10;
a[1] = 20;
a[2] = 30;

Но это в лучшем случае утомительно.

Есть ли способ лучше?

10
задан tshepang 27 February 2014 в 08:34
поделиться