# std::ostreambuf_iterator<CharT,Traits>::ostreambuf_iterator

< cpp‎ | iterator‎ | ostreambuf iterator

| (1) |
ostreambuf_iterator( streambuf_type* buffer ) throw(); |  | (C++11 前)
ostreambuf_iterator( streambuf_type* buffer ) noexcept; |  | (C++11 起)
| (2) |
ostreambuf_iterator( ostream_type& stream ) throw(); |  | (C++11 前)
ostreambuf_iterator( ostream_type& stream ) noexcept; |  | (C++11 起)

1) 构造迭代器，将私有的 streambuf_type* 成员设为 `buffer` 并将 `failed()` 标志设为 false 。若 `buffer` 是空指针则行为未定义。
2) 同 ostreambuf_iterator(stream.rdbuf()) 。

### 参数

stream | - | 将关联其 rdbuf() 到此迭代器的输出流
buffer | - | 此迭代器要访问的输出流缓冲

### 示例

    #include <iostream>
    #include <fstream>
    #include <iterator>
    int main()
    {
        std::basic_filebuf<char> f;
        f.open("test.txt", std::ios::out);

        std::ostreambuf_iterator<char> out1(&f);

        std::ostreambuf_iterator<wchar_t> out2(std::wcout);

        *out1 = 'a';
        *out2 = L'a';
    }

### 缺陷报告

下列更改行为的缺陷报告追溯地应用于以前出版的 C++ 标准。

DR | 应用于 | 出版时的行为 | 正确行为
--- | --- | --- | ---
P2325R3 | C++20 | 由于 C++20 迭代器必须为 `default_initializable` 提供了默认构造函数 | 与该要求一同移除