constexpr bitset() noexcept;
constexpr bitset(unsigned long long val) noexcept;
Effects: Создает объект класса bitset<N>, инициализируя первые M битовые позиции соответствующими битовыми значениями в val. M является меньшим из N и число битов в value representation о unsigned long long. Если M < N, оставшиеся битовые позиции инициализируются нулем.
template <class charT, class traits, class Allocator>
explicit
bitset(const basic_string<charT, traits, Allocator>& str,
typename basic_string<charT, traits, Allocator>::size_type pos = 0,
typename basic_string<charT, traits, Allocator>::size_type n =
basic_string<charT, traits, Allocator>::npos,
charT zero = charT('0'), charT one = charT('1'));
Effects: Определяет эффективную длину rlen инициализирующей строки как меньшее из значений n и str.size() - pos.
Затем функция выдает, invalid_argument если какой-либо из rlen символов в str начале позиции pos отличается от zero или one. Функция используется traits::eq() для сравнения значений символов.
В противном случае функция создает объект класса bitset<N>, инициализируя первые M битовые позиции значениями, определенными из соответствующих символов в строке str. M является меньшим из N и rlen.
Элемент построенного объекта имеет нулевое значение, если соответствующий символ в str, начиная с позиции pos, имеет значение zero. В противном случае элемент имеет значение один. Позиция символа pos + M - 1 соответствует нулевой позиции бита. Последующие уменьшающиеся позиции символов соответствуют увеличивающимся позициям битов.
template <class charT>
explicit bitset(
const charT* str,
typename basic_string<charT>::size_type n = basic_string<charT>::npos,
charT zero = charT('0'), charT one = charT('1'));