std::bitset<N>:: reference
|
class
reference
;
|
||
Класс
std::bitset
включает
std::bitset::reference
в качестве публично доступного вложенного класса. Этот класс используется как прокси-объект, позволяющий пользователям взаимодействовать с отдельными битами битового набора, поскольку стандартные типы C++ (такие как ссылки и указатели) не обладают достаточной точностью для работы с отдельными битами.
Основное применение
std::bitset::reference
заключается в предоставлении lvalue, которое может быть возвращено из
operator[]
.
Любые операции чтения или записи в bitset, происходящие через
std::bitset::reference
потенциально могут читать или записывать во весь базовый bitset.
Содержание |
Функции-члены
|
(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
Смотрите также
|
обращается к конкретному биту
(публичная функция-член) |