Общие указатели: указатель на указатель - PullRequest
1 голос
/ 01 сентября 2010

Общие указатели позволяют создавать указатель на указатель:

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);
}

1 Ответ

2 голосов
/ 01 сентября 2010

Без тестирования этого, я почти уверен, что вы захотите:

shared_ptr<shared_ptr<T> > o(new shared_ptr<T>(new T()));

Редактировать: забыли «новое» после первого «(», и исправлено нестандартное использование >> вопределение шаблона. (по крайней мере, не стандартно до C ++ 0x)

...