Мне было интересно, почему оператор преобразования 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'