Рассмотрим класс с количеством атрибутов bool
class A
{
bool a;
bool b;
bool c;
bool d;
bool e;
bool f;
};
Хотя каждый объект bool
может быть представлен одним битом, здесь каждый атрибут будет занимать байт (если я не ошибаюсь).Объект будет занимать 6 байтов вместо 1 байта (из которых 6 бит будут фактически использованы).Причина в том, что биты не адресуемы, только байты.
Чтобы сконденсировать бит памяти, можно использовать vector<bool>
или bitset
и затем обращаться к атрибутам по их индексам.Например, можно написать функцию get как
bool A::get_d() {data[3];}
В идеале, мне бы хотелось иметь прямой доступ к атрибутам с помощью InstanceOfA.d
.Возможно ли это сделать, при этом гарантируя, что все мои 6 bool
сгущаются в одном байте?