$include_dir="/home/hyper-archives/boost-users/include"; include("$include_dir/msg-header.inc") ?>
Subject: Re: [Boost-users] shared_ptr and && operator
From: Kenny Riddile (kfriddile_at_[hidden])
Date: 2009-06-08 19:19:15
Robert Dailey wrote:
> On Mon, Jun 8, 2009 at 2:16 PM, Steven Watanabe <watanabesj_at_[hidden] 
> <mailto:watanabesj_at_[hidden]>> 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_at_[hidden]
> http://listarchives.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++.