我正在尝试设置一个返回 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 变量,我就会遇到分段错误。 这里有什么问题?