boost::shared_ptrで、データを所有しているかどうかを問い合わせる
ときってどうしてますか?

if (ptr.get() != NULL){
  // 所持してる場合の作業
}

今まではこうやってましたけど、さっき実験してみたら、

if (ptr){
  // 所持してる場合の作業
}

でOKみたいなことが分かりました。
ソースを見た感じだとoperator bool_type() が働いてるからみたいですが、
これ、いったいどういう動作をしてるんでしょうか?
メンバ関数ポインタを返して???? わけが分かりません。