Bool Type Conversions

Bool Type Conversions

A value of type bool can be converted implicitly to a value of type int, with false becoming zero, and true becoming one. For example:

   bool b = false;  int n = b; // n equals 0  b = true;  double f = b; // f equals 1.0

Likewise, an arithmetic type, enumeration, pointer, or pointer to member can be converted to a value of type bool in the following manner: a zero value, null pointer, or null pointer to member is converted to false; any other value (including a negative value) is converted to true. For example:

   void (A::*pmf)() = &A::f ; //pmf is a pointer to a member  int n = -1;  bool b = pmf; // b equals true because pmf is not null  b = n; // b equals true  b = NULL; // b equals false  b = 9.99f; // b equals true


Share the Post: