
8 Jun
2009
8 Jun
'09
7:12 p.m.
On Mon, Jun 8, 2009 at 2:01 PM, Robert Dailey
Hey guys, Just wondering what happens if I do this: boost::shared_ptr<Foo> foo; boost::shared_ptr<Bar> bar; if( foo && bar ) { // Do stuff if both pointers are valid... } I did not see an overloaded && operator in the interface of the class. When using normal pointer semantics, this code is valid through implicit conversion of a pointer value to a boolean type.
Since boost::shared_ptr implements the safe_bool idiom, each shared pointer will use the safe_bool conversion, the result of which will implicitly convert to a bool. The normal short-circuiting logic should apply. --DD