class A {};
typedef shared_ptr<const A*> AConstPtr;
typedef shared_ptr<A*> APtr;
vector<APtr> ptr;
const vector<AConstPtr>* foo()
{
return &ptr;
}
此代碼不編譯,因爲「存在來自矢量<
APTR >
*沒有隱式轉換成const矢量<
AConstPtr >
* 「 反正有沒有做這個工作,沒有創建一個新的矢量,也沒有使用不安全的轉換?安全(shared_ptr的物體的矢量)轉換成(的shared_ptr的矢量到恆定對象)
我需要這個的原因是因爲我有一個類在內部存儲一個列表作爲向量<
APtr >
,但需要通過其接口公開一個完全的常量版本。
你可以通過它的接口公開一對迭代器嗎? – Cubbi 2011-05-17 03:32:28