我正在尝试将 astd::vector<uint8_t>
转换为boost::dynamic_bitset
. 我可以使用以下代码实现与此相反的操作,其中values
定义为
boost::dynamic_bitset<uint8_t> values
.
std::vector<uint8_t> payload;
boost::to_block_range(values, std::back_inserter(payload));
但是,我不知道如何反其道而行之。以下编译:
void MyClass::decode(std::vector<uint8_t> payload) const
{
boost::dynamic_bitset<uint8_t> bits(payload.size() * 8);
boost::from_block_range(payload.begin(), payload.end(), bits);
}
如果我用类成员变量替换bits
局部作用域values
变量(从所有迹象来看都是相同的确切类型,boost::dynamic_bitset<uint8_t>
),我得到以下编译器错误:
error: no matching function for call to ‘from_block_range(std::vector<unsigned char>::iterator, std::vector<unsigned char>::iterator, const boost::dynamic_bitset<unsigned char>&)’ boost::from_block_range(payload.begin(), payload.end(), values);