2016-01-05

C++でboolと数値型の相互変換について

n4296に曰く

If the source type is bool, the value false is converted to zero and the value true is converted to one. [conv.integral]

A zero value, null pointer value, or null member pointer value is converted to false; any other value is converted to true. [conv.bool]

つまり、boolから整数型への変換の際、false0に、true1になる。

整数型・ポインタ・メンバポインタからboolへの変換の際、0ヌルポインタfalseに、他の値trueになる。

ふと気になって調べた。

ひとつ上へ