gpt4 book ai didi

c++ - 为什么引用 unique_ptr 会这样?

转载 作者:太空狗 更新时间:2023-10-29 19:53:06 24 4
gpt4 key购买 nike

vector<int> v1, v2;

/*1*/ vector<int> &someReference=v1; //compiles
/*2*/ someReference=v2; //compiles

vector<unique_ptr<int>> vec1, vec2;

/*3*/ vector<unique_ptr<int>> &otherReference=vec1; //compiles
/*4*/ otherReference=vec2; //ERROR

如果第 3 行和第 4 行都没有编译,我会理解,但第三行不会导致任何编译错误——显然第一次初始化引用并传递它没有问题;问题仅在我尝试第二次分配时出现。

我无法理解幕后发生的事情导致无法进行第二次作业。

最佳答案

这和引用无关,是不能复制的unique_ptr

unique_ptr<int> p1, p2;
p1 = p2; // error

因此,unique_ptr 的 vector 也不能被复制。

vector<unique_ptr<int>> vec1, vec2;
vec1 = vec2; // error

关于c++ - 为什么引用 unique_ptr 会这样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17818152/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com