Неявное преобразование shared_ptr в bool - PullRequest
2 голосов
/ 21 февраля 2020

Мне было интересно, почему оператор преобразования bool shared_ptr прекрасно работает в if-statement, но не в неявном преобразовании в возвращаемое значение (bool) ..

std::shared_ptr<const OfflineContainer> m_pContainer;   

bool MyClass::IsInitialized() const
{
    if (m_pContainer) // compi;es
        return true;

    return m_pContainer; // won't compile
}

Сообщение компилятора: Error C2440 'return': cannot convert from 'const std::shared_ptr<const MyClass>' to 'bool'

...