Common pointers allows you to create pointer to pointer:
void foo(Object **o) {}
int main()
{
Object * o = new Object();
foo(&o);
}
Is there an analogous construction for shared_ptr?
void foo(std::shared_ptr <Object> *o) {}
int main()
{
std::shared_ptr <Object> o(new Object());
foo(&o);
}