【发布时间】:2016-07-10 03:08:50
【问题描述】:
我正在尝试 const_cast unique_ptr,但它给了我错误:
const std::unique_ptr<int> myptr;
std::unique_ptr<int> myptr1 = std::move(const_cast<std::unique_ptr<int> >(myptr));
所以我想了解如果 const_cast 可以与普通指针一起使用,为什么它不能与 unique_ptr 一起使用?
【问题讨论】:
-
自然不能从 const 对象中移动:移动需要修改源,以便从中“窃取”资源。
-
所以这意味着我不能拥有 const std::unique_ptr 的向量对吗?
-
我很确定你确实不能。 vector 的元素必须是可复制的或可移动的,
const unique_ptr两者都不是。 -
你也不能有
const int的向量。
标签: c++ c++11 casting constants unique-ptr