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

FreeBSD Manual Pages

  
 
  

home | help
std::experi...tream_joiner(3) C++ Standard Libarystd::experi...tream_joiner(3)

NAME
       std::experimental::ostream_joiner - std::experimental::ostream_joiner

Synopsis
	  Defined in header <experimental/iterator>
	  template<

	      class DelimT,
	      class CharT = char,		      (library fundamentals TS
       v2)
	      class Traits = std::char_traits<CharT>
	  >

	  class	ostream_joiner;

	  std::experimental::ostream_joiner is a single-pass LegacyOutputIter-
       ator that writes
	  successive  objects  into the	std::basic_ostream object for which it
       was constructed,
	  using	operator<<, separated by a delimiter. The delimiter is written
       to the output
	  stream between every two objects that	are written. The write	opera-
       tion is performed
	  when	the iterator (whether dereferenced or not) is assigned to. In-
       crementing the
	  ostream_joiner is a no-op.

	  In a typical implementation, the only	data members of	ostream_joiner
       are a pointer
	  to the associated std::basic_ostream,	the delimiter, and a bool mem-
       ber that
	  indicates whether the	next write is for the first element in the se-
       quence.

	  Compared to std::ostream_iterator, ostream_joiner prints the	delim-
       iter sequence one
	  fewer	 time,	and  is	 not templated on the type of the object to be
       printed.

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

Member functions
	  constructor		constructs a new ostream_joiner
				(public	member function)
	  destructor		destructs an ostream_joiner
	  (implicitly declared)	(public	member function)
	  operator=		writes an object to the	associated output  se-
       quence
				(public	member function)
	  operator*		no-op
				(public	member function)
	  operator++		no-op
	  operator++(int)	(public	member function)

Non-member functions
			      creates  an  ostream_joiner object, deducing the
       template's type
	  make_ostream_joiner arguments	from the function arguments
			      (function	template)

Example
       // Run this code

	#include <algorithm>
	#include <experimental/iterator>
	#include <iostream>
	#include <iterator>

	int main()
	{
	    int	i[] = {1, 2, 3,	4, 5};
	    std::copy(std::begin(i),
		      std::end(i),
		      std::experimental::make_ostream_joiner(std::cout,	    ",
       "));
	}

Output:
	1, 2, 3, 4, 5

See also
	  ostreambuf_iterator	output	 iterator   that  writes  to  std::ba-
       sic_streambuf
			      (class template)
	  ostream_iterator    output iterator that  writes  to	std::basic_os-
       tream
			      (class template)
	  istream_iterator	input	iterator   that	 reads	from  std::ba-
       sic_istream
			      (class template)

http://cppreference.com		  2024.06.10	 std::experi...tream_joiner(3)

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

home | help