如何解决unqiue_ptr 的 std::move const 引用
将 const 引用移动到 unique_ptr 无法编译。当我尝试在 top()
上执行 priority_queue
然后在顶部执行 pop()
时出现问题。我无法在 pop()
之前拿到商品!
const std::unique_ptr<int>& refToPtr = pqueue.back();
std::unique_ptr<int> ptr = std::move(refToPtr); // fails to compile
这是一个完整的例子。
#include <memory>
#include <queue>
#include <vector>
int main(int argc,char** argv) {
std::unique_ptr<int> initial = std::make_unique<int>(4);
std::priority_queue<std::unique_ptr<int>> queue;
queue.push(std::move(initial));
const std::unique_ptr<int>& refToPtr = queue.top();
std::unique_ptr<int> ptr = std::move(refToPtr); // won't compile???
queue.pop();
return 0;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。