Is it possible to create a smart pointer to an object and pass this smart pointer as an argument to the constructor? I would like to use a smart pointer to the object in the object itself.

```
auto player1 = std::make_shared<Player>(argument1, ..smartpointer_to_player1..);

```