В С++, почему bool требует один байт, чтобы хранить true или false, где для этого достаточно одного бита, например 0 для false и 1 для true? (Почему Java также требует один байт?)
Во-вторых, насколько безопаснее использовать следующее?
struct Bool {
bool trueOrFalse : 1;
};
В-третьих, даже если это безопасно, поможет ли вышеупомянутая полевая техника? Поскольку я слышал, что мы экономим место там, но все же компилятор сгенерированный код для доступа к ним больше и медленнее, чем код, сгенерированный для доступа к примитивам.