Why "explicit" in shared_ptr's constructor?