最終更新日時: 2025年06月30日 14時34分19秒 (JST)
Raclamusi が更新

履歴 編集

class template
<iterator>

# std::ostreambuf_iterator

    namespace std {
      template <class CharT, class Traits = char_traits<CharT> >
      class ostreambuf_iterator
        : public iterator<output_iterator_tag, void, void, void, void>;
    }

## 概要

`ostreambuf_iterator`は出力イテレータであり、代入の際に外部から渡された`streambuf`オブジェクトにストリームバッファの`sputc()`メンバ関数で値を出力するイテレータアダプタである。

`ostream_iterator`がフォーマットされた出力を扱うのに対し、`osteambuf_iterator`はフォーマットなしの生の出力を扱う。

## メンバ関数

名前 | 説明 | 対応バージョン
--- | --- | ---
`(constructor)` | コンストラクタ |
`~ostream_iterator() = default` | デストラクタ |
`operator=` | 代入演算子 |
`operator*` | 間接参照 |
`operator++` | インクリメント |
`failed` | 書き込みが失敗したかを判定する |

## メンバ型

名前 | 説明 | 対応バージョン
--- | --- | ---
`char_type` | `CharT` |
`traits_type` | `Traits` (デフォルトは`char_traits<CharT>`) |
`streambuf_type` | `basic_streambuf<CharT, Traits>` |
`ostream_type` | `basic_ostream<CharT, Traits>` |
`difference_type` | `void` |
`pointer` | `void` |
`value_type` | `void` |
`iterator_category` | `output_iterator_tag` |
`reference` | `void` |

## 例

    #include <iostream>
    #include <iterator>
    #include <algorithm>
    #include <string>

    int main()
    {
      const std::string s = "Hello";

      // 文字列"Hello"を標準出力に出力する
      std::copy(s.begin(), s.end(), std::ostreambuf_iterator<char>(std::cout));
    }

### 出力

    Hello

## 関連項目

- `basic_streambuf`