open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2435.htm

+ я могу написать что-то вроде:

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

Почемуif (a_sp) проверить работу правильно?a_sp не является логическим значением, но как оно проверяется на истинность или ложь? Как условие if знает, как проверить результатa_sp.get() функционировать? Или, если это не так, как этоNULLизa_sp проверил? Есть ли какая-то функция вshared_ptr определил, что преобразует его в логическое значение?

Ответы на вопрос(2)

Ваш ответ на вопрос