Namespaces
Variants

std::bitset<N>::reference

С 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)
 
 
class reference;

Класс std::bitset включает std::bitset::reference как общедоступный вложенный класс. Этот класс используется как прокси-объект, позволяющий пользователям взаимодействовать с отдельными битами набора битов, поскольку стандартные типы C++ (такие как ссылки и указатели) не обладают достаточной точностью, чтобы задавать отдельные биты.

Основное назначение std::bitset::reference — предоставить lvalue, которое может быть возвращено из operator[].

Любые чтения или записи в набор битов, выполняемые через std::bitset::reference, потенциально читают или записывают весь базовый набор битов.

Функции-члены

(constructor)
создает ссылку
(public member function)
(destructor)
уничтожает ссылку
(public member function)
operator=
присваивает значение ссылаемому биту
(public member function)
operator bool
возвращает ссылаемый бит
(public member function)
operator~
возвращает инвертированный ссылаемый бит
(public member function)
flip
инвертирует ссылаемый бит
(public member function)

std::bitset<N>::reference:: reference

reference ( const reference & ) = default ;
(начиная с C++11)
(constexpr начиная с C++23)

Создает ссылку из другой ссылки. Конструктор копирования неявно объявляется. (до C++11)

Другие конструкторы доступны только для std::bitset .

std::bitset<N>::reference:: ~reference

~reference ( ) ;
(constexpr начиная с C++23)

Уничтожает ссылку.

std::bitset<N>::reference:: operator=

reference & operator = ( bool x ) ;
(1) (noexcept since C++11)
(constexpr since C++23)
reference & operator = ( const reference & x ) ;
(2) (noexcept since C++11)
(constexpr since C++23)

Присваивает значение ссылаемому биту.

Параметры

x - присваиваемое значение

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

* this

std::bitset<N>::reference:: operator bool

operator bool ( ) const ;
(noexcept начиная с C++11)
(constexpr начиная с C++23)

Возвращает значение ссылаемого бита.

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

Ссылаемый бит.

std::bitset<N>::reference:: operator~

bool operator~ ( ) const ;
(noexcept since C++11)
(constexpr since C++23)

Возвращает инверсию ссылаемого бита.

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

Инверсия ссылаемого бита.

std::bitset<N>::reference:: flip

reference & flip ( ) ;
(noexcept начиная с C++11)
(constexpr начиная с C++23)

Инвертирует ссылающийся бит.

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

* this

Пример

#include <bitset>
#include <iostream>
int main()
{
    std::bitset<4> bs{0b1110};
    std::bitset<4>::reference ref = bs[2];
    auto info = [&](int id)
    {
        std::cout << id << ") bs: " << bs << "; ref bit: " << ref << '\n';
    };
    info(1);
    ref = false;
    info(2);
    ref = true;
    info(3);
    ref.flip();
    info(4);
    ref = bs[1]; // operator=( const reference& x )
    info(5);
    std::cout << "6) ~ref bit: " << ~ref << '\n';
}

Вывод:

1) bs: 1110; ref bit: 1
2) bs: 1010; ref bit: 0
3) bs: 1110; ref bit: 1
4) bs: 1010; ref bit: 0
5) bs: 1110; ref bit: 1
6) ~ref bit: 0

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

обращается к конкретному биту
(публичная функция-член)