битовыми полями. По ссылке поля передавать в функцию нельзя. А есть ли вообще какой-нибудь способ их туда передать? желательно без макросов. Типа:
struct foo {
unsigned char a: 4
unsigned char b: 1
unsigned char c: 1
unsigned char d: 2
};
int main()
{
foo bfg9000;
auto f = [=] (auto storage) {
storage = 1; // на деле тут чуточку посложнее: значение бита получаем из контрола
};
// задача -- пройтись по всем битам в структуре таким образом
f(bfg9000.a); // нихт компилирен
}
Всю структуру можешь передать, по ссылке
Мне нужно ещё как-то донести до функции какое поле ей менять внутри.
Передай designator, сделай на основе enum
Отдельный аргумент заведи. Ссылку на часть байта физически нельзя сделать - так что, только вся структура.
Ну, это понятно. Видимо, с енамчиками придётся. Спасибо.
Обсуждают сегодня