我目前正在尝试声明一个由17个32位std::bitsets数组组成的数组。我这样做:
std::bitset<32> mTestInstruction[17]
{
std::string("01000000001000000000000000000001"),
std::string("01000000011000000000000001100011"),
std::string("01000000101000000000000000000001"),
std::string("10100000000000000000000000001010"),
std::string("00000000100000010000000010000010"),
std::string("00000000110001010010000000000001"),
std::string("01001000111001010000000000000000"),
std::string("01000100001000110000000000000011"),
std::string("01000000001000010000000000000001"),
std::string("10000000000000000000000000000011"),
std::string("00000000010000000000000000000001"),
std::string("00000000111000000000000000000001"),
std::string("00000000111001110000100000000001"),
std::string("01000000010000100000000000000001"),
std::string("01000100001000100000000000000010"),
std::string("10000000000000000000000000001100"),
std::string("11100000000000000000000000001000"),
};
我收到了以下错误:
错误:无法将 'std :: __ cxx11 :: basic_string < char> (((const char *)" 01000000001000000000000000000001"), std :: allocator <char>())'从 'std :: __ cxx11 :: string {aka std :: __ cxx11 :: basic_string <char>}'转换为 'std :: bitset <32u>'
对于每个比特串,我不理解为什么会出现这种情况,因为根据cpp参考,std :: string是构建bitset的有效方法。
请问有谁能指出如何解决这个问题吗?
std::string
的构造函数。不幸的是,它是explicit
的。 - max66