【发布时间】:2018-03-05 11:26:23
【问题描述】:
是否可以将vector<T*> 移动到vector<const T*> 而不复制它并且不依赖reinterpret_cast<>?即
vector<int*> get() {
return ...;
}
vector<const int*> getConst() {
return whatgoeshere(get());
}
【问题讨论】:
-
应该不会……
-
这是人们开始问你为什么要这样做的地方?这听起来像xy problem
-
propagate_const?
-
如果您按价值返回,为什么还要担心副本?
-
@StoryTeller:看起来很有趣,但我看不出它到底是如何应用在这里的。并且重新复制,很容易做到这一点:
auto tmp = get(); return {tmp.begin(), tmp.end()};,但这会产生额外的不必要的复制。