1. ホーム
  2. c++

[解決済み] どのC++コンパイラでも、(bool)true == (int)1としてよいですか?

2022-08-02 03:19:16

質問

以下のように考えてよいでしょうか。 (bool)true == (int)1 を仮定してよいのでしょうか?

どのように解決するのですか?

はい、キャストは冗長です。あなたの式では

true == 1

積分プロモーションが適用され、bool 値は int にプロモートされ、このプロモートは1を生成しなければなりません。

参考にしてください。 4.7 [conv.integral] / 4: ソース型が bool ... true は1つに変換される。