c++ - 如何从非指针对象创建 std::shared_ptr?

标签 c++ shared-ptr

作为一个函数的输出,我得到一个 Foo 类型的对象.作为另一个类的参数,我需要传递一个 std::shared_ptr<Foo> 类型的对象.如何从原始对象创建共享指针?

最佳答案

这真的很简单:

auto val = std::make_shared<Foo>(FuncThatReturnsFoo(...));

基本上,只需堆分配一个新的 Foo,将结果复制/移动到其中。

关于c++ - 如何从非指针对象创建 std::shared_ptr?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11992269/

相关文章:

c++ - 是否可以使用 Clang 3.1 和 VC11 Beta header 编译 C++ 源代码?

c++ - DirectX 中两个矩形的透明度,一个在另一个后面 - 我看到窗口的背景而不是第二个纹理

c++ - 如何在qt中像PC开始菜单一样在状态栏中创建菜单

c++ - 如何将 std::shared_ptr<Resource> 传递给函数?

c++ - Boost智能指针设计问题

c++ - typedef 共享指针的最佳策略是什么?

c++ - 概率密度的正交例程

c++ - 公共(public)访问声明不影响成员函数指针?

c++ - 如何将 shared_ptr 初始化为结构

c++ - 启用_shared_from_this。为什么崩溃?