Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
std::ostrea...buf_iterator(3) C++ Standard Libarystd::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
       iterator
	  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		  Cor-
       rect behavior
	  LWG 112 C++98	     the requirement "the argument cannot      applies
       to overload
			     be	null" was applied to overload (2)      (1) in-
       stead
	  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)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::ostreambuf_iterator::ostreambuf_iterator&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help