Я не могу понять, делаю ли я здесь что-то не так, надеюсь, кто-то здесь сможет меня просветить.
У меня есть класс Flags
, это очень упрощенная версия, но я объявляю набор битов
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-битная программа
EDIT
Принятый ответ для вышеупомянутого, но как примечание может кто-нибудь объяснить, почему при использовании конструктора по умолчанию (который должен инициализировать их все в нули), они не все установлены в нули?
_p.to_ulong()
возвращает 1390560944и _p выглядит как
[8](0,0,0,0,1,1,0,1)