我无法弄清楚我是否在这里做错了什么,希望这里有人可以启发我。
我有一个类Flags
,这是一个非常简化的版本,但我声明了一个 bitset
class Flags
{
private:
//List of 8 bits
std::bitset<8> _P;
public:
Flags();
}
在我的构造函数中,我将其初始化为
Flags::Flags()
: _P(32ul)
{}
但它不会编译并给我错误
错误 C2668:“std::bitset<_Bits>::bitset”:对重载函数的模糊调用
这是在 VS2010 SP1 64 位中编译的,但作为 32 位程序
编辑
接受的答案是针对上述内容,但作为旁注,任何人都可以解释为什么在使用默认构造函数(应该将它们全部初始化为零)时,它们没有全部设置为零?
_p.to_ulong()
返回 1390560944 和 _p 看起来像
[8](0,0,0,0,1,1,0,1)