我知道我可以“促进”weak_ptr
喜欢shared_ptr
这样:
// std::weak_ptr<T> weak;
std::shared_ptr<T> promoted(weak);
我的问题是:可以以某种方式防止这种情况吗?
作为一个练习,我想创建我自己的WeakPtrFactory的非常简单的实现。它this
作为类成员启动,然后 spawnweak_ptr
将在对象销毁时失效。我的尝试只是用作shared_ptr
私有成员并返回weak_ptr
用它创建的 s(以防万一,不传递操作删除器)。但它有明显的缺点,因为每个人都可以将它们提升回shared_ptr
并打破整个机制。