
Robert Dailey wrote:
On Mon, Jun 8, 2009 at 2:16 PM, Steven Watanabe
mailto:watanabesj@gmail.com> wrote: AMDG
Robert Dailey wrote:
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.
The same applies to shared_ptr. http://www.boost.org/libs/smart_ptr/shared_ptr.htm#conversions
Thanks. I figured this was the case but I guess I was just having trouble finding the header file in which this casting operator is implemented. I appreciate the answers to my embarrassingly obvious question.
------------------------------------------------------------------------
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
Here's a short explanation why you won't find operators && or || overloaded very often: http://blog.emptycrate.com/node/363 For a more thorough explanation, see chapter 7 in More Effective C++.