czy ktoś z was miałby jakiś pomysł jak zrobić tablice pól bitowych, gdzie kazde pole bitowe bylo by typu unsigned int:1 ?
unsigned int tab[32]:1; //nie dziala
unsigned int tab[32]:32; //też nie dziala
probowalem opakowac to w strukture
struct a{
unsigned int _a:1;
}
lecz potem jak mialem
struct b{
a tab[32];
}
sizeof(b);// u mnie 128, nie 32...
nie wchodzi w gre użycie vector<bool> (ktory jest niby odpowiednio zaimplementowany, ale nie dla mnie), potrzebuje to zrobić sam...
ktos się może orientuje jak zaimplementowana jest specjalizacja klasy vector dla bool (tak zeby bool zajmowal jeden bit nie bajt)? pewnie pewne sztuczki z tej implementacji by się przydały..
[EDIT]
tak sobie teraz pomyślałem, że stricte jako tablicy się tego zapisac nie da...tablica, a przynajmniej jej nazwa to jakby wstaly wskaznik na poczatek..zatem t[i] to tak jakby t+i, gdzie t+i wskazuje na jakiejs miejsce w pamieci...niby ok...ale nie bardzo...skoro wskazuje, to posiada adres jakiegos konkretnego miejsca..I tu jest problem...adresy wskazuja na bajty nie bity...wiec chyba tego jako tablicy nie da sie zrobic... :/
wiec teraz juz faktycznie sie to sprowadza do tego....jak tworcy klasy vector<bool> napisali specjalizacje, ze bool zajmuje u nich wtedy tylko jeden bit?