名前空間
変種
操作

std::bitset<N>::reference

From cppreference.com
< cpp‎ | utility‎ | bitset
 
 
ユーティリティライブラリ
言語サポート
型のサポート (基本型、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 クラスは、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) [編集]
English 日本語 中文(简体) 中文(繁體)