Which value is better to use? Boolean true or Integer 1?
Solution 1
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)
Solution 2
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.
Solution 3
For what? Use a boolean for a boolean; use an integer when you're counting something.
Comments
-
Datoxalas almost 2 years
Does it make any sense or not?
-
Devin Burke about 13 yearsBoolean is also a lot smaller in terms of memory.
-
Adam Casey about 13 yearsJust 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)
-
Begemoth about 13 years@Justin Satyr A lot smaller is std::vector<bool> compared to std::vector<int> in other cases you need to take alignment into account.
-
Roman A. Taycher almost 13 yearsIsn't std::vector<bool> secretly a bunch of bit flags though.