std::bitset<N>::reference
From cppreference.com
| class reference; |
||
std::bitset クラスは、public にアクセス可能なネストされたクラスとして std::bitset::reference を含みます。このクラスは、標準 C++ の型(参照やポインタなど)が個々のビットを指定するのに十分な精度で構築されていないため、ユーザーが bitset の個々のビットを操作できるようにするプロキシオブジェクトとして使用されます。
std::bitset::reference の主な用途は、operator[] から返される lvalue を提供することです。
std::bitset::reference を介して行われる bitset へのあらゆる読み書きは、潜在的に基盤となる bitset 全体を読み書きする可能性があります。
目次 |
[編集] メンバ関数
| (コンストラクタ) |
参照を構築します (public member function) |
| (デストラクタ) |
参照を破棄します (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以降) (C++23 以降 constexpr) |
|
別の参照から参照を構築します。 コピーコンストラクタは暗黙的に宣言されます。(C++11 まで)
他のコンストラクタは、std::bitset からのみアクセスできます。
std::bitset<N>::reference::~reference
~reference(); |
(C++23 以降 constexpr) | |
参照を破棄します。
std::bitset<N>::reference::operator=
reference& operator=( bool x ); |
(1) | (C++11 以降 noexcept) (C++23 以降 constexpr) |
reference& operator=( const reference& x ); |
(2) | (C++11 以降 noexcept) (C++23 以降 constexpr) |
参照されているビットに値を代入します。
パラメータ
| x | - | 代入する値 |
戻り値
*this
std::bitset<N>::reference::operator bool
operator bool() const; |
(C++11 以降 noexcept) (C++23 以降 constexpr) |
|
参照されているビットの値を返します。
戻り値
参照されているビット。
std::bitset<N>::reference::operator~
bool operator~() const; |
(C++11 以降 noexcept) (C++23 以降 constexpr) |
|
参照されているビットの反転を返します。
戻り値
参照されているビットの反転。
std::bitset<N>::reference::flip
reference& flip(); |
(C++11 以降 noexcept) (C++23 以降 constexpr) |
|
参照されているビットを反転します。
戻り値
*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
[編集] 関連項目
| 特定のビットにアクセスする (public member function) |