有谁知道惰性初始化伙伴的实现shared_ptr
并与weak_ptr
它一起实现?课程的要求是:
lazy_ptr
允许客户端稍后(如果有的话)构造对象的类,而不需要构造函数实现具有三种可能状态的
weak_lazy_ptr
类:尚未构造(不会锁定到 ashared_ptr
)、构造(将锁定到 ashared_ptr
)和已销毁(不会锁定到 ashared_ptr
)
我创建了一些不久前没有完全完成这项工作的类(请参阅此处的 CVu 文章),它们使用shared_ptr
并weak_ptr
在它们的实现中使用。使用共享指针和弱指针而不是与它们集成的模型的主要问题如下:
一旦所有
lazy_ptr
对象超出范围,任何弱引用都不能再被锁定,即使其他客户端持有shared_ptr
版本无法控制在不同线程上构建对象
我很感激任何关于协调这些问题的其他尝试的指针,或者这个领域可能正在进行的任何工作。