c++ - 哪一行代码使 shared_ptr 的引用计数增加?

标签 c++ c++11 smart-pointers

我正在寻找一种方法来确定哪一行代码负责增加 shared_ptr 的引用计数?例如,想象一下我有一个智能指针并且它的引用计数为 12 的情况。我倾向于知道我的项目中的哪一行 C++ 代码或赋值运算符负责,只要它是 13。

谢谢你的帮助

最佳答案

这是依赖于标准库实现的,因为 shared_ptr 的实现不是语言标准的一部分。

当然,它必须是在构造、赋值和复制构造上执行的一行。在库源文件中查找这三个。

如果您真的必须看一个示例,GCC 的 libstdc++ 共享 ptr 代码在这里:

但它并不漂亮......

关于c++ - 哪一行代码使 shared_ptr 的引用计数增加?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50315996/

相关文章:

c++ - 单例实例和 scoped_ptr

c++ - 有什么好的方法可以像 excel 一样在 MFC/c++ 程序中插入一个控件?

c++ - 如何让列表可以隐式转换为我的类对象?

c++ - 为什么这里涉及移动构造函数

C++ 求值顺序

c++ - get() 不会破坏 std::unique_ptr 背后的想法吗?

android - 如何在 cocos2d for android 中显示带有确认消息和是/否按钮的 UIAlertView?

c++ - 无效传输率错误

c++ - "extern"关键字使用

c++ - 如何将 NULL 或 nullptr 传递给接收 unique_ptr 参数的函数?