std::bitset<N>::set
bitset& set(); | (1) |
(noexcept начиная с C++11) (constexpr начиная с C++23) |
bitset& set( std::size_t pos, bool value = true ); | (2) | (constexpr начиная с C++23) |
Устанавливает все биты в true или устанавливает один бит в указанное значение.
1) Устанавливает все биты в
true.
2) Устанавливает бит в позиции
pos в значение value.Параметры
| pos | - | позиция (отсчет от 0, то есть от наименее значащего бита к наиболее значащему) бита, который нужно установить |
| value | - | значение, в которое нужно установить бит |
Возвращаемое значение
*this
Исключения
Пример
#include <bitset>
#include <cstddef>
#include <iostream>
int main()
{
std::bitset<8> b;
std::cout << b << '\n';
std::cout << b.set() << '\n';
std::cout << b.reset() << '\n';
for (std::size_t i = 1; i < b.size(); i += 2)
b.set(i);
std::cout << b << '\n';
}
Вывод:
00000000 11111111 00000000 10101010
Отчеты об ошибках
Следующие отчеты об ошибках, изменяющие поведение, были применены ретроактивно к ранее опубликованным стандартам C++.
| DR | Применяется к | Поведение согласно опубликованной версии | Корректное поведение |
|---|---|---|---|
| LWG 186 | C++98 | тип value был int | исправлено на bool |
| LWG 2250 | C++98 | поведение было неопределенным, если pos несоответствовало допустимой позиции бита | в этом случае всегда выбрасывается исключение |
См. также
устанавливает биты в false (открытая функция-член) |
|
| инвертирует значения битов (открытая функция-член) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/utility/bitset/set