Как std::bitset выделяет память "под капотом"? C++

Читая про кортежи и другие подобные структуры наткнулся на Std::bitset. Сказано, что он выделяет память по битам. Но как это достигается? Разве в С++ можно выделить, например, один бит памяти? Если да то как. Или же Std::bitset под капотом выделяет большее количество памяти, например 1 байт, а потом просто дает или ограничивает доступ к битам выделенной памяти?


Ответы (1 шт):

Автор решения: Mikhailo

Выделить бит нельзя. Минимальная адресуемая память - байт.

Поэтому он выделяет сколько нужно байтов, и работает с битами в них. При этом количество выделяемых байт, очевидно, не меньтше чем (N+7)/8, где N - число бит.

→ Ссылка