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 行都没有编译,我会理解,但第三行不会导致任何编译错误 - 显然第一次初始化引用并传递它没有问题;该问题仅在我第二次尝试分配时出现。
我无法理解幕后发生的事情使第二个任务变得不可能。