是否有可移植(跨实现)方式在CL中创建弱引用? 如果没有,我应该使用什么替代方法来避免因不需要的监听器仅通过订阅事件而保持活动而导致的内存泄漏? 在我的特定情况下,所述侦听器用于实现功能性反应节点(即没有副作用,仅对其存储的值有用),因此手动取消订阅将非常不优雅。
答案 0 :(得分:1)
ANSI没有标准化弱引用,虽然大多数实现都有一种创建弱引用的方法,但提供的抽象是不同的。例如,CMUCL,CLISP和SBCL都提供弱引用("弱指针"),而Franz有弱向量,Clozure有弱值哈希表。
有些库声称可以为一系列实现的弱指针提供可移植的接口。我不知道他们有多好。