C++言語の定義は、charをboolにキャストしてからcharに戻すことについて約束していることは何ですか?ブールを通る往復キャストはどうなりますか?
char original = 255;
bool next = original;
char final = next;
この場合、ほとんどのコンパイラは言語の保証を超えて何をしていますか? true
又はfalse
(4.12)のいずれかでbool
結果に変換
C++言語の定義は、charをboolにキャストしてからcharに戻すことについて約束していることは何ですか?ブールを通る往復キャストはどうなりますか?
char original = 255;
bool next = original;
char final = next;
この場合、ほとんどのコンパイラは言語の保証を超えて何をしていますか? true
又はfalse
(4.12)のいずれかでbool
結果に変換
これは、元の値がゼロであるか非ゼロであるかに応じて、0または1の値を与えます。 bool
への変換
はtrue
又はfalse
の値を与える:
4.12ゼロ値、ヌルポインタ値、またはヌルメンバポインタ値は
false
に変換されます。 他の値はtrue
に変換されます。バックchar
に変換
ゼロにfalse
を変換し、一方にtrue
:
4.7/4ソース・タイプが
bool
ある場合、値false
がゼロに変換され、 値true
が変換されます1に。
積分値、及び1
又は0
いずれかでbool
整数値に変換した結果(4.5(6))。第4章(標準的な変換)を参照してください。
boolに変換すると、ゼロとnullはfalseに変換され、その他はすべてtrueに変換されます。 boolからの変換がfalseの場合は0に変換され、trueの場合は1に変換されます。