Como o shared_ptr funciona se a condição
Em C ++, posso escrever algo como:
shared_ptr<A> a_sp = someFunctionReturningSharedPtr();
if (a_sp) {
cout << a_sp->someData << endl;
} else {
cout << "Shared Pointer is NULL << endl;
}
Porqueif (a_sp)
verificar o trabalho corretamente?a_sp
não é um booleano, mas como é verificado se é verdadeiro ou falso? Como a condição if sabe para verificar o resultado dea_sp.get()
função? Ou, se não, como está oNULL
ity doa_sp
marcado? Existe alguma função emshared_ptr
definido que o converte em valor boolean