1. ホーム
  2. c++

[解決済み] sizeof(bool)はC++言語規格で定義されていますか?

2022-07-20 01:02:12

質問

標準ドキュメントに答えが見当たりません。C++言語規格では sizeof(bool) は常に 1 (1 バイト分) でなければならないのでしょうか、それともこのサイズは実装で定義されているのでしょうか?

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

sizeof(bool) は実装で定義されており、規格ではこの事実が特に強調されています。

§5.3.3/1節を要約したものです。

sizeof(char) , sizeof(signed char)sizeof(unsigned char) の結果は1です。 sizeof を他の基本的な型に適用した結果は、実装で定義される。[注:特に sizeof(bool)sizeof(wchar_t) は実装で定義されています。 69) ]

脚注69)です。

<ブロッククオート

sizeof(bool) は1である必要はありません。