繁体   English   中英

来自weak_ptr的不安全原始指针-由上下文保证安全

Unsafe raw pointer from weak_ptr - safety guaranteed by context

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我正在存储weak_ptr以避免循环结构,并且我知道在某些特定上下文中shared_ptr仍然有效。

是否可以从weak_ptr获取原始指针而不转换为shared_ptr (涉及内存写入)?

(注意:这不是“ 如何在C ++中维护指向父代的弱指针?”的重复,我特别是在问一种不安全的方法,而不是在获取这样的指针)

1 个回复

我可以从weak_ptr获取原始指针而不转换为shared_ptr吗

没有。

注意,您不“投射”是从weak_ptr构造一个shared_ptr

(这涉及内存写入)?

你这是什么意思 创建一个shared_ptr会增加一个引用计数,这就是您要引用的内容吗?

1 从原始指针创建weak_ptr <>

我想将原始指针成员包装到某个智能指针,以防止在开发类中删除。 指针下对象的所有者在类之外。 所以,看起来像boost::shared_ptr和std::auto_ptr不适合。 以下是一个简化示例: 当然,它会导致编译错误。 从原始指针(如果存在)初始化weak_ptr的正确方法 ...

2 便携式hack从weak_ptr泄漏原始指针

我有一个由shared_ptr s和weak_ptr的对象结构,以避免循环。 原始指针是不行的,因为当通过对象跟踪反序列化作为序列化时间时, boost::serialization需要恢复共享和弱指针。 物体寿命模式很复杂(粒子模拟),但完全可以预测。 每当我使用weak_ptr::lo ...

5 关于weak_ptr的线程安全

关于上面的代码,我知道不同的线程读取和写入相同的shared_ptr会导致竞争条件。 但是weak_ptr呢? 下面的代码中是否存在竞争条件? (我的平台是微软VS2013。) ...

6 weak_ptr的static_pointer_cast

在c ++ 0x中,对于std :: shared_ptr有一个std :: static_pointer_cast,但std :: weak_ptr没有等效的方法。 这是故意还是疏忽? 如果疏忽,我该如何定义合适的功能? ...

10 绑定到weak_ptr

有没有办法将std :: bind绑定到std :: weak_ptr ? 我想存储一个“弱函数”回调,当被调用者被销毁时,它会自动“断开连接”。 我知道如何使用shared_ptr创建一个std :: function: 但是返回的std :: function使我的对象永远保 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM