重複の可能性:
Boolを使用したC++ビットフィールドパッキング
bool
ビットフィールド定義内でC++のキーワードを使用しても安全であることが保証されていますか?
何かのようなもの:
struct flags {
bool a : 1;
bool b : 1;
}
重複の可能性:
Boolを使用したC++ビットフィールドパッキング
bool
ビットフィールド定義内でC++のキーワードを使用しても安全であることが保証されていますか?
何かのようなもの:
struct flags {
bool a : 1;
bool b : 1;
}
C ++ 03 9.6「ビットフィールド」から:
ビットフィールドは、整数型または列挙型(3.9.1)でなければなりません。プレーン(明示的に符号付きでも符号なしでもない)char、short、int、またはlongビットフィールドが符号付きか符号なしかは実装定義です。ブール値は、ゼロ以外のサイズのビットフィールドに正常に格納できます。..。
値trueまたはfalseが任意のサイズのbool型のビットフィールド(1ビットビットフィールドを含む)に格納されている場合、元のbool値とビットフィールドの値は等しくなります。..。
3.9.1 / 7「基本型」は、それbool
が一体型であることを指定します。
はい。実際には、使用sizeof(bool) * CHAR_BIT
可能なビット数を知るためのガイドとして使用できます。
C ++ 98から、§9.6.3
ビットフィールドは、整数型または列挙型(3.9.1)でなければなりません。
C ++ 98から、§3.9.1.7
タイプbool、char、wchar_t、および符号付き整数型と符号なし整数型は、まとめて整数型と呼ばれます。