最終更新日時: 2026年02月20日 15時50分20秒 (JST)
Akira Takahashi が更新

履歴 編集

function template
<bitset>

# std::operator>>

    namespace std {
      template <class CharT, class Traits, size_t N>
      std::basic_istream<CharT, Traits>&
        operator>>(std::basic_istream<CharT, Traits>& is, bitset<N>& x);
    }

## 概要

2進数表記でストリームから入力する。

## 効果

1. 入力ストリーム`is`から`N`文字を読み、`basic_string`型の一時オブジェクトを作って読み込んだ文字列を保持する。文字は、以下のいずれかの条件を満たすまで読む：
   - `N`文字読み込んで保持した
   - 入力シーケンスが終端に達した
   - 次に読み込む文字が`is.widen('0')`と`is.widen('1')`のどちらでもなかった。
2. 読み込んだ文字列`str`を`bitset`のコンストラクタに渡して構築し、`x`に代入する：`x = bitset<N>(str);`

1文字も入力が行われなかった場合、ローカルエラー状態に`ios_base::failbit`を設定する。

## 戻り値

`is`

## 例

    #include <iostream>
    #include <sstream>
    #include <bitset>

    int main()
    {
      std::stringstream ss;
      ss << "1010";

      std::bitset<4> bs;
      ss >> bs;

      std::cout << bs << std::endl;
    }

### 出力

    1010

## 参照

- P1264R2 Revising the wording of stream input operations
  - C++23でローカルエラー状態の概念が導入され、入力関数のエラー処理セマンティクスが明確化された