< cpp‎ | iterator
Iterator library
Iterator concepts
Iterator primitives
Algorithm concepts and utilities
Indirect callable concepts
Common algorithm requirements
Iterator adaptors
Stream iterators
Iterator customization points
Iterator operations
Range access
Defined in header <iterator>
template< class CharT, class Traits = std::char_traits<CharT> >

class ostreambuf_iterator : public std::iterator<std::output_iterator_tag,

                                                 void, void, void, void>
(until C++17)
template< class CharT, class Traits = std::char_traits<CharT> >
class ostreambuf_iterator;
(since C++17)

std::ostreambuf_iterator is a single-pass LegacyOutputIterator that writes successive characters into the std::basic_streambuf object for which it was constructed. The actual write operation is performed when the iterator (whether dereferenced or not) is assigned to. Incrementing the std::ostreambuf_iterator is a no-op.

In a typical implementation, the only data members of std::ostreambuf_iterator are a pointer to the associated std::basic_streambuf and a boolean flag indicating if the the end of file condition has been reached.


[edit] Member types

Member type Definition
iterator_category std::output_iterator_tag
value_type void
difference_type void
pointer void
reference void
char_type CharT
traits_type Traits
streambuf_type std::basic_streambuf<CharT, Traits>
ostream_type std::basic_ostream<CharT, Traits>

Member types iterator_category, value_type, difference_type, pointer and reference are required to be obtained by inheriting from std::iterator<std::output_iterator_tag, void, void, void, void>.

(until C++17)

[edit] Member functions

constructs a new ostreambuf_iterator
(public member function) [edit]
(implicitly declared)
destructs an ostreambuf_iterator
(public member function) [edit]
writes a character to the associated output sequence
(public member function) [edit]
(public member function) [edit]
(public member function) [edit]
tests if output failed
(public member function) [edit]

[edit] Example

#include <string>
#include <algorithm>
#include <iterator>
#include <iostream>
int main()
    std::string s = "This is an example\n";
    std::copy(s.begin(), s.end(), std::ostreambuf_iterator<char>(std::cout));


This is an example

[edit] See also

input iterator that reads from std::basic_streambuf
(class template) [edit]
output iterator that writes to std::basic_ostream
(class template) [edit]