TR1: shared_ptr、真偽値テスト

http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1836.pdf
「2.2.3.5 shared_ptr observers」に「operator unspecified-bool-type () const;」の定義があった。

operator unspecified-bool-type () const;


16 Returns: an unspecified value that, when used in boolean contexts, is equivalent to get() != 0.
17 Throws: nothing.
18 [Note: This conversion operator allows shared_ptr objects to be used in boolean contexts. [Example: if (p
&& p->valid()) ―end example.] One possible choice for the return type is a pointer to member function,
which avoids many of the implicit conversion pitfalls of a bool or void* return type. ―end note]