std::bitset<N>::reference
来自cppreference.com
class reference; |
||
std::bitset 类包含 std::bitset::reference 作为可公开访问的嵌套类。此类用作允许用户与 bitset 的单个位交互的代理对象,因为标准 C++ 类型(如引用和指针)没有内建指定单个位的足够精度。
std::bitset::reference 的基本用途是提供能从 operator[]
返回的左值。
任何通过 std::bitset::reference 对 bitset 的读或写潜在地读或写整个底层 bitset 。
成员函数
(构造函数) |
构造引用。只对 std::bitset 自身可访问 (私有成员函数) |
(析构函数) |
销毁引用 (公开成员函数) |
operator= |
赋值 bool 给被引用位 (公开成员函数) |
operator bool |
返回被引用位 (公开成员函数) |
operator~ |
返回翻转的被引用位 (公开成员函数) |
flip |
翻转被引用位 (公开成员函数) |
std::bitset<N>::reference::~reference
~reference(); |
(C++23 前) | |
constexpr ~reference(); |
(C++23 起) | |
销毁引用。
std::bitset<N>::reference::operator=
(1) | ||
reference& operator=( bool x ); |
(C++11 前) | |
reference& operator=( bool x ) noexcept; |
(C++11 起) | |
(2) | ||
|
(C++11 前) | |
reference& operator=( const reference& x ) noexcept; |
(C++11 起) (C++23 前) |
|
constexpr reference& operator=( const reference& x ) noexcept; |
(C++23 起) | |
赋值给被引用位。
参数
x | - | 要赋值的值 |
返回值
*this
std::bitset<N>::reference::operator bool
operator bool() const; |
(C++11 前) | |
operator bool() const noexcept; |
(C++11 起) (C++23 前) |
|
constexpr operator bool() const noexcept; |
(C++23 起) | |
返回被引用位的值。
参数
(无)
返回值
被引用位。
std::bitset<N>::reference::operator~
bool operator~() const; |
(C++11 前) | |
bool operator~() const noexcept; |
(C++11 起) (C++23 前) |
|
constexpr bool operator~() const noexcept; |
(C++23 起) | |
返回被引用位的翻转。
参数
(无)
返回值
被引用位的翻转。
std::bitset<N>::reference::flip
reference& flip(); |
(C++11 前) | |
reference& flip() noexcept; |
(C++11 起) (C++23 前) |
|
constexpr reference& flip() noexcept; |
(C++23 起) | |
翻转被引用位。
参数
(无)
返回值
*this
示例
运行此代码
#include <bitset> #include <iostream> int main() { std::bitset<4> bs( 0b1110 ); std::bitset<4>::reference ref = bs[2]; // auto ref = bs[2]; auto info = [&](int n) { std::cout << n << ") 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
参阅
访问指定的位 (公开成员函数) |