Spec-Zone.ru › C++

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

Исключения

2) Выбрасывает std::out_of_range, если pos не соответствует допустимой позиции бита.

Пример

#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 не
соответствовало допустимой позиции бита
в этом случае всегда
выбрасывается исключение

См. также

reset
устанавливает биты в false
(открытая функция-член)
flip
инвертирует значения битов
(открытая функция-член)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/utility/bitset/set

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API