+template<class Data>
+GenericBitBuffer<Data>::GenericBitBuffer(std::FILE* file, usint _items, usint item_size) :
+ size(BITS_TO_WORDS(_items * item_size)),
+ pos(0),
+ bits(DATA_BITS),
+ item_bits(item_size),
+ items(_items),
+ current(0),
+ free_buffer(true)
+{
+ this->data = new Data[this->size];
+ memset(this->data, 0, this->size * sizeof(Data));
+ std::fread(this->data, sizeof(Data), this->size, file);
+}
+