23 #include "dccl/codec.h"
25 using namespace dccl::logger;
27 dccl::Bitset dccl::Bitset::relinquish_bits(size_type num_bits,
30 if(final_child || this->size() < num_bits)
32 size_type num_parent_bits = (final_child) ? num_bits : num_bits - this->size();
35 Bitset parent_bits = parent_->relinquish_bits(num_parent_bits,
false);
43 for(size_type i = 0; i < num_bits; ++i)
46 throw(
dccl::Exception(
"Cannot relinquish_bits - no more bits to give up! Check that all field codecs are always producing (encode) and consuming (decode) the exact same number of bits."));
48 out.push_back(this->front());