如何解决可以将 myfunc(make_shared<int>(0)) 调用到接收weak_prt 的函数吗?
我有一个接受weak_ptr的函数,我在函数中传递了我的shared_ptr。
#include <memory>
#include <iostream>
void takeweak(std::weak_ptr<int> wp) {
std::cout << wp.use_count() << std::endl; // prints 1
}
int main() {
takeweak(std::make_shared<int>());
return 0;
}
这是靠运气还是按设计工作?
在整个 main()
作用域函数中是否有共享指针的副本?或者共享指针是否会存在于 takeweak()
主体的整个范围内(直到其堆栈展开)?
这种行为是否有可能在新版本的编译器或语言标准中被打破?
相关问题:Different behaviour while passing shared_ptr to weak_ptr in thread functions and normal functions
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。