Предположим, у вас есть функция в D, которая является pure
и nothrow
и по типу возвращаемого значения и типам аргументов не может выдать какую-либо вновь выделенную память. Могу ли я тогда добавить к этой функции атрибут @nogc
? Если нет, есть ли шансы, что это станет возможным в будущем?
Моя точка зрения здесь следующая: поскольку функция не имеет видимых побочных эффектов, вся память, которая была выделена на пути, может быть детерминировано освобождена при выходе из функции. Следовательно, GC на самом деле не требуется, так как можно избежать шага маркировки и развертки. Или нельзя?