d的分配器的安全

如果指定的释放分配器@安全(或其他),分配器会不会是@安全?
原文
是的.显而易见的后续问题是,"如何使释放(deallocate)方法@safe?答案是:@safe代码中,它需要隔离其他方法来限制别名.

正如Timon[1]和其他人[2][3]所解释那样,既然从DIP1035中,已有了@system变量,尽管UX不理想,但可在不添加新语言功能时就完成它.

因此,当前待办列表中的下一步是设计利用这些技术来使释放为@safe的新分配器API.
1
2
3

有趣的问题.原则上,可制作在静态内存块外,分配的@safe分配器.只需要取并返回自身并不是@systemvoid[]切片.危险的是,按任意类型的存储来使用这些空切片.

因此,如果你的@safe分配器没有执行应有操作,则最终可能会覆盖活指针,因为分配机制会@信任依赖自定义分配器正确行为的转换.
这会是个问题.也许分配器应该在void[]上,返回只能在@系统代码中创建或破坏包装器类型.

你可能感兴趣的:(dlang,d,d,分配器,安全)