Общих указателей позволяют создать указатель на указатель:Общие указатели: указатель на указатель
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);
}
Что вы пытаетесь достичь? Если у вас нет особых причин не делать этого, проще всего вернуть объект по значению или хотя бы вернуться владение, передающее интеллектуальный указатель по значению. Взяв указатель на указатель или указатель на интеллектуальный указатель, чтобы указать его на динамически все Объект ocate обычно не нужен в C++. –