no implicit cast from shared_ptr<> to bool