std::bitset<N>::set
Материал из cppreference.com
<tbody>
</tbody>
<tbody class="t-dcl-rev t-dcl-rev-num ">
</tbody><tbody>
</tbody>
| (1) | ||
bitset& set(); |
(до C++11) | |
bitset& set() 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 | — | положение устанавливаемого бита (считая от {c
, от наименее значимого к наиболее значимому)}} |
| value | — | значение для установки бита |
Возвращаемое значение
*this
Исключения
2) Вызывает исключение std::out_of_range, если
pos не соответствует допустимой позиции в наборе битов.Пример
Запустить этот код
#include <iostream>
#include <bitset>
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++:
| Номер | Применён | Поведение в стандарте | Корректное поведение |
|---|---|---|---|
| LWG 186 | C++98 | тип value был int
|
исправлено на bool
|
Смотрите также
устанавливает биты в false (public функция-элемент) | |
| инвертирует значения битов (public функция-элемент) |