公共指针允许您创建指向指针的指针:
void foo(Object **o) {}
int main()
{
Object * o = new Object();
foo(&o);
}
shared_ptr是否有类似的结构?
void foo(std::shared_ptr <Object> *o) {}
int main()
{
std::shared_ptr <Object> o(new Object());
foo(&o);
}
答案 0 :(得分:2)
如果不对此进行测试,我很确定你会想要:
shared_ptr<shared_ptr<T> > o(new shared_ptr<T>(new T()));
编辑:在模板定义中的第一个'('和修复的非标准使用&gt;&gt;之后忘记了“new”。(至少在C ++ 0x之前不是标准的)