Spec-Zone.ru › C++

std::bitset<N>::reference

class reference;

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

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

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

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

(конструктор)
создаёт ссылку. Доступен только для самого std::bitset
(приватный член-функция)
(деструктор)
уничтожает ссылку
(публичный член-функция)
operator=
присваивает значение bool указанному биту
(публичный член-функция)
operator bool
возвращает значение указанного бита
(публичный член-функция)
operator~
возвращает инвертированное значение указанного бита
(публичный член-функция)
flip
инвертирует значение указанного бита
(публичный член-функция)

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

~reference();
(constexpr со стандартом C++23)

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

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

(1)
reference& operator=( bool x );
(до стандарта C++11)
reference& operator=( bool x ) noexcept;
(со стандартом C++11)
(constexpr со стандартом C++23)
(2)
reference& operator=( const reference& x );
(до стандарта C++11)
reference& operator=( const reference& x ) noexcept;
(со стандартом C++11)
(constexpr со стандартом C++23)

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

Параметры

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

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

*this

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

operator bool() const;
(до стандарта C++11)
operator bool() const noexcept;
(со стандартом C++11)
(constexpr со стандартом C++23)

Возвращает значение указанного бита.

Параметры

(нет)

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

Значение указанного бита.

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

bool operator~() const;
(до стандарта C++11)
bool operator~() const noexcept;
(со стандартом C++11)
(constexpr со стандартом C++23)

Возвращает инвертированное значение указанного бита.

Параметры

(нет)

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

Инвертированное значение указанного бита.

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

reference& flip();
(до стандарта C++11)
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

См. также

operator[]
доступ к определённому биту
(публичный член-функция)

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

Spec-Zone.ru

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