В двух предыдущих ответах был использован подход, объясняющий, что такое возможности D, а какие нет, в отношении управления памятью.Я не уверен, что они отражают суть вопроса.
Но что касается вопроса о том, как легко добиться ручного управления памятью.Я бы сказал, используйте C-версию malloc () и free () из std.c.stdlib .Все, что будет выделено этим, будет игнорироваться GC.
Перегрузка нового для ваших классов, возможность использовать C stdlib.
В противном случае вы можете использовать данные typeinfo для ручной memcpyБайт-массив ClassInfo.init в управляемую вручную память.Вызов ctor с таким подходом может быть сложным, но вы можете просто решить использовать обычную функцию вместо стандартного имени ctor.
Затем оберните все это в несколько удобных шаблонов, и все готово.
Примечание: я тоже сотрудник D1.