【发布时间】:2011-05-17 01:57:39
【问题描述】:
class A {};
typedef shared_ptr<const A*> AConstPtr;
typedef shared_ptr<A*> APtr;
vector<APtr> ptr;
const vector<AConstPtr>* foo()
{
return &ptr;
}
此代码无法编译,因为“没有从 vector<Aptr>* 到 const vector<AConstPtr> * 的隐式转换”
有没有办法在不创建新向量且不使用不安全演员表的情况下完成这项工作?
我需要这个的原因是因为我有一个类在内部将列表存储为vector<APtr>,但需要通过其接口公开它的完全const版本。
【问题讨论】:
-
能否改为通过其接口公开一对迭代器?
标签: c++ vector casting constants shared-ptr