Вы можете просто проверить указатель как логическое значение: он оценивается как true
, если он не равен нулю, и false
, если он равен нулю:
if (!blah)
boost::shared_ptr
и * 1007.* оба реализуют идиому safe-bool, а C ++ 0x std::shared_ptr
реализует явный bool
оператор преобразования.Они позволяют shared_ptr
использоваться в качестве логического значения в определенных обстоятельствах, подобно тому, как обычные указатели могут использоваться в качестве логического значения.