Does it make any sense or not?
3 Answers
A boolean true
is, well, a boolean value. Use it whenever you want to express that a certain binary condition is met.
The integer literal 1
is a number. Use it, whenever you are counting something.
Don't use integers for booleans and vice versa. They are different.
Consider a variable int isEnabled
. Of course, I can guess that 0
and 1
may be the only intended values for this variable. But language-wise, nothing keeps me from assigning 4247891
. Using a boolean, however, restricts the valid values to true
and false
. This leaves no room for speculation.
(C++ int's and bools are somewhat convertible, but it's generally frowned upon)

- 45,603
- 7
- 82
- 122
-
5Boolean is also a lot smaller in terms of memory. – Devin Burke Apr 05 '11 at 16:04
-
3Just to add reference to what Justin Satyr is saying: Integer's are usually 4bytes (32bits) whereas Boolean's are 1byte (8bits). These are all dependant on the platform but for all of the main platforms I know this is correct. (Yes, a boolean should, in a perfect world, be 1 bit, however it's impossible to reference only one bit in memory) – Adam Casey Apr 05 '11 at 16:10
-
3@Justin Satyr A lot smaller is std::vector
compared to std::vector – Begemoth Apr 05 '11 at 16:11in other cases you need to take alignment into account. -
Isn't std::vector
secretly a bunch of bit flags though. – Roman A. Taycher Jun 02 '11 at 05:30
I recommend using true
if your type is logically a boolean. This will be far more clear in terms of intent, which makes your code more maintainable.

- 554,122
- 78
- 1,158
- 1,373
For what? Use a boolean for a boolean; use an integer when you're counting something.

- 378,754
- 76
- 643
- 1,055