[cfe-commits] r111116 - in /cfe/trunk: include/clang/Checker/PathSensitive/ConstraintManager.h include/clang/Checker/PathSensitive/GRState.h lib/Checker/FlatStore.cpp lib/Checker/RegionStore.cpp lib/Checker/SimpleConstraintManager.cpp lib/Checker/SimpleConstraintManager.h lib/Checker/Store.cpp test/Analysis/outofbound.c

Douglas Gregor dgregor at apple.com
Mon Aug 16 09:23:49 PDT 2010


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.

	- Doug



More information about the cfe-commits mailing list