Wie funktioniert shared_ptr Arbeit in if-Bedingung

In C++ kann ich etwas schreiben wie:

shared_ptr<A> a_sp = someFunctionReturningSharedPtr();
if (a_sp) {
    cout << a_sp->someData << endl;
} else {
    cout << "Shared Pointer is NULL << endl;
} 

Warum if (a_sp) überprüfen, korrekt? a_sp ist nicht ein boolean, aber wie ist es aktiviert für true oder false? Wie funktioniert die if-Bedingung kennen, um zu überprüfen das Ergebnis der a_sp.get() Funktion? Oder wenn nicht, wie ist die NULLkeit der a_sp überprüft? Gibt es eine Funktion in shared_ptr definiert, konvertiert es in einen booleschen Wert?

Schreibe einen Kommentar