std::shared_ptr‹> в C++11 предоставляет своего рода логический оператор.
operator unspecified-bool-type() const;
(Это не прямой operator bool() const
из-за опасности от неявного приведения типа bool
.)
Почему в std::weak_ptr‹> нет аналогичного оператора? ловлю себя на том, что постоянно печатаю
if( !wp.expired() )
когда я хочу напечатать
if( wp )
Почему нет логического преобразования для weak_ptr?
operator bool
теперь можно безопасно выполнять напрямую в C++11: stackoverflow.com/a/6242355/46642 - person R. Martinho Fernandes   schedule 23.04.2012