home | help
std::ostrea...buf_iterator(3)  C++ Standard Libary std::ostrea...buf_iterator(3)

NAME
     std::ostreambuf_iterator::ostreambuf_iterator    -   std::ostreambuf_itera-
     tor::ostreambuf_iterator

Synopsis
	ostreambuf_iterator( streambuf_type* buffer )		 (until C++11)
	throw();
	ostreambuf_iterator( streambuf_type* buffer )		 (since C++11)
	noexcept;					 (1)
	ostreambuf_iterator(	      ostream_type&	      stream	       )
     (until C++11)
	throw();					     (2)
	ostreambuf_iterator(	       ostream_type&	       stream	       )
     (since C++11)
	noexcept;

	1) Constructs the iterator with the private streambuf_type*  member  set
     to buffer and
	the failed() flag set to false. The behavior is undefined if buffer is a
     null
	pointer.
	2) Same as ostreambuf_iterator(stream.rdbuf()).

Parameters
	stream - the output stream whose rdbuf() will be accessed by this itera-
     tor
	buffer - the output stream buffer to be accessed by this iterator

Example
     // Run this code

      #include <fstream>
      #include <iostream>
      #include <iterator>

      int main()
      {
	  const char* file = "test.txt";
	  {
	      std::basic_filebuf<char> f;
	      f.open(file, std::ios::out);
	      std::ostreambuf_iterator<char> out1(&f);
	      *out1 = 'a'; // writes to file via iterator
	  }

	  // read back from the file
	  char a;
	  std::cout << ((std::ifstream{file} >> a), a) << std::endl;

	  std::ostreambuf_iterator<wchar_t> out2{std::wcout};
	  *out2 = L'b';
      }

Output:
      a
      b

	Defect reports

	The  following	behavior-changing  defect  reports were applied retroac-
     tively to
	previously published C++ standards.

	  DR	Applied to	     Behavior  as  published		 Correct
     behavior
	LWG  112 C++98	    the requirement "the argument cannot      applies to
     overload
			   be null" was applied to overload (2)      (1) instead
	P2325R3 C++20	   default constructor was  provided  as  C++20  removed
     along with
			   iterators  must  be	default_initializable	 the re-
     quirement

http://cppreference.com 	   2024.06.10	   std::ostrea...buf_iterator(3)

home | help