gpt4 book ai didi

c++ - 是否有通过引用分配 shared_ptr 的用例?

转载 作者:搜寻专家 更新时间:2023-10-31 01:37:21 25 4
gpt4 key购买 nike

通常,shared_ptr 必须通过复制语义进行分配,以确保增加使用次数并避免出现对指针的引用存在但它跟踪的内存已在不同线程中释放的情况。

但是,我记得我曾经遇到过一个场景(在多线程代码中),其中通过引用分配 shared_ptr 是可以接受的、可取的和安全的。我无法再访问代码,也无法记忆起当时的情景。有人能想到什么时候这样的使用是安全的吗?

为了避免琐碎的场景,我将规定它是一个多线程程序,并且指针在多个线程中使用。

最佳答案

与任何对象类似,您可以随时使用对 shared_ptr 的引用,只要您知道您所引用的 shared_ptr 将在引用的生命周期内继续存在.这实际上与任何其他引用文献没有什么不同。 shared_ptr 指向的对象无关;如果在引用对象的生命周期结束后使用引用,则您正在处理未定义的行为。因此,如果引用的 shared_ptr 仍然存在,那么它管理的对象至少有一个 shared_ptr 仍在引用它,因此不会被删除。

关于c++ - 是否有通过引用分配 shared_ptr 的用例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34254993/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com