Ты не. Удалить не следует использовать с D-версией 2, и оно предназначено для удаления из языка. Что за задержка, я не уверен. Вместо этого вы используете функцию destroy (объект), которая вызывает деструктор, где вы можете освободить ресурсы, которые не являются памятью GC. Деструктор будет вызван снова во время сбора GC объектов собственной памяти. Это объясняется в " Языке программирования D ".
Идея состоит в том, чтобы вернуть ресурсы раньше, чем то, что мог бы предоставить GC, и предотвратить повреждение памяти от висячих указателей. Чтобы быть менее безопасным, модуль core.memory предоставляет GC.free (объект), который можно использовать для освобождения памяти после вызова destroy (объект).
Поскольку я не программист на C ++, я действительно не знаю шаблон RAII, но это и подсчет ссылок - ожидаемая стратегия, если вы хотите избежать GC.