bool
正しいか正しくないか
新しい型 bool の登場だ。真偽値 という、ある物事が 正しい か 正しくない かを表す値を扱う。
true は何かが正しいことを表す。
false は何かが正しくないことを表す。
bool zero_is_0;
zero_is_0 = true;
bool you_are_me;
you_are_me = false;
整数に型変換する場合
false=>0true=>1
整数と四則演算させようとすると、こんな感じの不思議な挙動になっちゃう。
3 * false; // => 0
4 + true; // => 5
他の型から bool に型変換する場合
0(もしくは0と同じ何か) はfalse- それ以外はすべて
true
これはかなり直感的ではないので、使わないようにするよ。
std::cout で出力するとき
std::cout で普通に出力しようとすると、勝手に 0 と 1 に変換されちゃう。わけがわからないよ。
#include <iostream>
int main() {
std::cout << true;
}
true や false のまま出力するには、std::boolalpha (これは関数) をそれより前に流し込む必要がある。
#include <iostream>
int main() {
std::cout << std::boolalpha << true;
}
これを取り消して元に戻す場合は、std::noboolalpha を流す。
#include <iostream>
int main() {
std::cout << std::boolalpha << true
<< std::noboolalpha << true;
}
めんどくさいけど、忘れないでおいてね。