Do not assign std::shared_ptr to SharedPointer

I'm not sure whether it's good coding practice to assign a base
class instance to a derived class.

So, better to instantiate a SharedPointer explicitly until I
clarify myself whether this makes sense or not.