On 08/17/2010 11:09 AM, Jes Sorensen wrote:
On 08/12/10 19:50, Blue Swirl wrote:
+While using "bool" is good for readability, it comes with minor caveats:
+ - Don't use "bool" in places where the type size must be constant across
+   all systems, like public interfaces and on-the-wire protocols.
+ - Don't compare a bool variable against the literal, "true",
+   since a value with a logical non-false value need not be "1".
+   I.e., don't write "if (seen == true) ...".  Rather, write "if (seen)...".
I'd strongly discourage the use of bool in any code. It doesn't provide
anything guarantees

It's actually better than int:

     int flag = word & BIT;

can lose the BIT if it is outside the range of an int, whereas

    bool flag = word & BIT;

will be true if BIT is set. Not to mention the improved readability (which appears to be a downside to C fans).

and you are not sure about the size of it. Using int
is safer. IMHO bool is one of the worse examples of changes to the C
standard :(

bool foo = false;
foo++;

What's incrementing a bool supposed to mean?  Even more true?

if (foo == true)....

As it happens, this will succeed.

The other thing that might be worth mentioning in the int/long section
is that long is complicated in broken development environments such as
Windows where it is only 32 bit :(

It's only complicated if you assume sizeof(long) == sizeof(void *). While we're used to it from Linux, all you need is s/long/intptr_t/ and you're all set.

--
I have a truly marvellous patch that fixes the bug which this
signature is too narrow to contain.


Reply via email to