¿Cómo funciona shared_ptr si la condición
En C ++, puedo escribir algo como:
shared_ptr<A> a_sp = someFunctionReturningSharedPtr();
if (a_sp) {
cout << a_sp->someData << endl;
} else {
cout << "Shared Pointer is NULL << endl;
}
Por queif (a_sp)
¿funciona correctamente? @a_sp
no es un booleano, pero ¿cómo se verifica si es verdadero o falso? ¿Cómo sabe la condición if para verificar el resultado dea_sp.get()
función? O si no es así, ¿cómo es laNULL
ity of thea_sp
comprobado? ¿Hay alguna función enshared_ptr
definido que lo convierte en valor booleano?