微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

函数返回 unique_ptr 的向量

如何解决函数返回 unique_ptr 的向量

我正在尝试设置一个返回 unique_ptrs 向量的函数,但我没有这样做。我制作的简化版本如下:

#include <memory>
#include <vector>

std::vector<std::unique_ptr<int>>&& Foo()
{
    std::vector<std::unique_ptr<int>> v;
    v.emplace_back(std::make_unique<int>(1));
    v.emplace_back(std::make_unique<int>(2));
    v.emplace_back(std::make_unique<int>(3));
    return std::move(v);
}

int main()
{
    auto bar = Foo();
    return 0;
}

但是,一旦我从函数 Foo 返回的值分配给 bar 变量,我就会遇到分段错误。 这里有什么问题?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。