Да, неужели? А попробовать?
А вопрос Вам был задан правильный. Если уж Вы делаете/моделируете bool
, то поле надо объявлять либо bool
, либо unsigned
, но никак не int
, т.к. в языке чётко сказано, что bool
– беззнаковый. Ну, и зачем делать знаковую подложку беззнаковому значению? Грабли ищете? Так их там есть!
Ну у меня и есть unsigned. Или вы про что-то другое?
PS: когда мы задаем члены-битовые поля, то неплохо было бы использовать тип с известным количеством битов. Например, как моем коде - unsigned int.
Использовать bool с битовым полем - сомнительная идея. Потому, как неизвестно, сколько в нем битов.
Нет, как раз про это. Например, про то, что char
– ни разу не unsigned
.
1 лайк
Я где-то упустил , видимо, нить беседы. Какой чар? Какой правильный вопрос? Вопрос был - почему используется численный тип, а не bool. Ответ - потому, что в unsigned int много битов, и можно напихать кучу булевых переменных.
А так то нельзя?
struct TManyBools {
bool var0 : 1;
bool var1 : 1;
bool var2 : 1;
bool var3 : 1;
bool var4 : 1;
bool var5 : 1;
bool var6 : 1;
bool var7 : 1;
bool var8 : 1;
bool var9 : 1;
bool var10 : 1;
bool var11 : 1;
bool var12 : 1;
};
А, вот оно что. Я имел ввиду размер в битах а не знаковость.