Namespaces
Variants

std::bitset<N>::operator[]

From ru.cppreference.net
 
 
Библиотека утилит
Поддержка языка
Поддержка типов (базовые типы, RTTI)
Макросы проверки возможностей библиотеки (C++20)
Утилиты программ
Функции с переменным числом аргументов
Поддержка корутин (C++20)
Поддержка контрактов (C++26)
Трёхстороннее сравнение
(C++20)
(C++20)(C++20)(C++20)    
(C++20)(C++20)(C++20)

Общие утилиты
Операторы отношений (устарело в C++20)
 
 
bool operator[]( std::size_t pos ) const;
(1) (constexpr начиная с C++11)
reference operator[]( std::size_t pos );
(2) (constexpr начиная с C++23)

Обращается к биту в позиции pos.

1) Возвращает значение бита.
2) Возвращает объект типа std::bitset::reference, который позволяет изменять значение.

Если pos < size() находится false вне допустимого диапазона, поведение не определено.

(до C++26)

Если pos < size() находится false вне допустимого диапазона:

(начиная с C++26)

Параметры

pos - позиция возвращаемого бита

Возвращаемое значение

1) Значение запрашиваемого бита.
2) Объект типа std::bitset::reference , который позволяет производить запись в запрашиваемый бит.

Исключения

Ничего не выбрасывает.

Пример

#include <bitset>
#include <cstddef>
#include <iostream>
int main()
{
    std::bitset<8> b1{0b00101010}; // двоичный литерал для 42
    for (std::size_t i = 0; i < b1.size(); ++i)
        std::cout << "b1[" << i << "]: " << b1[i] << '\n';
    b1[0] = true; // изменяет первый бит через bitset::reference
    std::cout << "After setting bit 0, b1 holds " << b1 << '\n';
}

Вывод:

b1[0]: 0
b1[1]: 1
b1[2]: 0
b1[3]: 1
b1[4]: 0
b1[5]: 1
b1[6]: 0
b1[7]: 0
After setting bit 0, b1 holds 00101011

Отчеты о дефектах

Следующие отчеты об изменениях поведения, влияющие на дефекты, были применены ретроактивно к ранее опубликованным стандартам C++.

DR Применяется к Поведение в опубликованной версии Корректное поведение
LWG 11 C++98 1. описание отсутствовало в стандарте C++
2. была только неконстантная перегрузка
1. описание добавлено
2. добавлена константная перегрузка
LWG 907 C++98 поведение чтения бита в позиции pos было эквивалентно
поведению test(pos) , но test() может выбрасывать исключения
избегает упоминания test()

Смотрите также

обращается к конкретному биту
(public member function)