Namespaces
Variants

std::bitset<N>::reference

ja.cppreference.net より
 
 
ユーティリティライブラリ
言語サポート
型サポート (基本型、RTTI)
ライブラリ機能テストマクロ (C++20)
プログラムユーティリティ
可変長引数関数
コルーチンサポート (C++20)
契約サポート (C++26)
三方比較
(C++20)
(C++20)(C++20)(C++20)    
(C++20)(C++20)(C++20)

汎用ユーティリティ
関係演算子 (C++20 で非推奨)
整数比較関数
(C++20)(C++20)(C++20)    
(C++20)
swap および 型操作
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
共通ボキャブラリ型
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)



 
 
class reference;

std::bitset クラスには std::bitset::reference が public にアクセス可能なネストされたクラスとして含まれています。このクラスは、個々のビットを指定するために標準の C++ の型(参照やポインタなど)が十分な精度で組み込まれていないため、ユーザーが bitset の個々のビットを操作できるようにするプロキシオブジェクトとして使用されます。

std::bitset::reference の主な用途は、operator[] から返される左辺値を提供することです。

std::bitset::reference を介して発生する bitset への読み取りまたは書き込みは、内部の 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 since C++23)

参照を破棄します。

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

関連項目

特定のビットにアクセス
(公開メンバ関数)