On Aug 16, 2010, at 9:23 AM, Douglas Gregor wrote:

> 
> On Aug 16, 2010, at 9:06 AM, Ted Kremenek wrote:
> 
>> 
>> On Aug 15, 2010, at 6:15 PM, Jordy Rose wrote:
>> 
>>> +
>>> +  operator bool() const {
>>> +    return getRegion() != NULL;
>>> +  }
>>> };
>> 
>> Hi Jordy,
>> 
>> I'm really mixed about this.  operator bool() is convenient, but in my 
>> experience it doesn't lead to better readability in the code.  Why not just 
>> have clients call 'getRegion()', where the check becomes explicit?  Using 
>> operator bool() also compounds the often abused use of bool.  For me, bool 
>> is 'true' and 'false', not "is valid" or "is not valid".  If someone doesn't 
>> know the correct interpretation of operator bool() in a specific context, it 
>> is easy to mess things up.
> 
> In general, conversion to bool is useful when the class may be used in the 
> pattern
> 
>       if (C c = maybeGetAC()) {
>       }
> 
> I have no idea whether this pattern will be used with this class.

That's fair, and this is possibly one of those cases.  That's why I had mixed 
feelings. :)
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to