[ostreambuf.iterator.general] # 24 Iterators library [[iterators]](./#iterators) ## 24.6 Stream iterators [[stream.iterators]](stream.iterators#ostreambuf.iterator.general) ### 24.6.5 Class template ostreambuf_iterator [[ostreambuf.iterator]](ostreambuf.iterator#general) #### 24.6.5.1 General [ostreambuf.iterator.general] [1](#1) [#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iterators.tex#L7091) The class template ostreambuf_iterator writes successive *characters* onto the output stream from which it was constructed[.](#1.sentence-1) [🔗](#lib:ostreambuf_iterator) namespace std {template>class ostreambuf_iterator {public:using iterator_category = output_iterator_tag; using value_type = void; using difference_type = ptrdiff_t; using pointer = void; using reference = void; using char_type = charT; using traits_type = traits; using streambuf_type = basic_streambuf; using ostream_type = basic_ostream; ostreambuf_iterator(ostream_type& s) noexcept; ostreambuf_iterator(streambuf_type* s) noexcept; ostreambuf_iterator& operator=(charT c); ostreambuf_iterator& operator*(); ostreambuf_iterator& operator++(); ostreambuf_iterator& operator++(int); bool failed() const noexcept; private: streambuf_type* sbuf_; // *exposition only*};}