2003-08-05 19:48:41 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								<?xml version="1.0" encoding="utf-8" ?> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< html  xmlns = "http://www.w3.org/1999/xhtml"  xml:lang = "en"  lang = "en" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< head > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< meta  http-equiv = "Content-Type"  content = "text/html; charset=utf-8"  / > 
							 
						 
					
						
							
								
									
										
										
										
											2007-11-03 03:25:13 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								< meta  name = "generator"  content = "Docutils 0.5: http://docutils.sourceforge.net/"  / > 
							 
						 
					
						
							
								
									
										
										
										
											2003-08-05 19:48:41 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								< title > Function Output Iterator< / title > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< meta  name = "author"  content = "David Abrahams, Jeremy Siek, Thomas Witt"  / > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< meta  name = "organization"  content = "Boost Consulting, Indiana University Open Systems Lab, University of Hanover Institute for Transport Railway Operation and Construction"  / > 
							 
						 
					
						
							
								
									
										
										
										
											2007-11-03 03:25:13 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								< meta  name = "date"  content = "2006-09-11"  / > 
							 
						 
					
						
							
								
									
										
										
										
											2004-11-02 14:31:27 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								< meta  name = "copyright"  content = "Copyright David Abrahams, Jeremy Siek, and Thomas Witt 2003."  / > 
							 
						 
					
						
							
								
									
										
										
										
											2007-11-03 03:25:13 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								< link  rel = "stylesheet"  href = "../../../rst.css"  type = "text/css"  / > 
							 
						 
					
						
							
								
									
										
										
										
											2003-08-05 19:48:41 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								< / head > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< body > 
							 
						 
					
						
							
								
									
										
										
										
											2005-05-20 15:32:55 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								< div  class = "document"  id = "function-output-iterator" > 
							 
						 
					
						
							
								
									
										
										
										
											2003-08-05 19:48:41 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								< h1  class = "title" > Function Output Iterator< / h1 > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< table  class = "docinfo"  frame = "void"  rules = "none" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< col  class = "docinfo-name"  / > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< col  class = "docinfo-content"  / > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< tbody  valign = "top" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< tr > < th  class = "docinfo-name" > Author:< / th > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< td > David Abrahams, Jeremy Siek, Thomas Witt< / td > < / tr > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< tr > < th  class = "docinfo-name" > Contact:< / th > 
							 
						 
					
						
							
								
									
										
										
										
											2007-11-03 03:25:13 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								< td > < a  class = "first reference external"  href = "mailto:dave@boost-consulting.com" > dave@ boost-consulting.com< / a > , < a  class = "reference external"  href = "mailto:jsiek@osl.iu.edu" > jsiek@ osl.iu.edu< / a > , < a  class = "last reference external"  href = "mailto:witt@ive.uni-hannover.de" > witt@ ive.uni-hannover.de< / a > < / td > < / tr > 
							 
						 
					
						
							
								
									
										
										
										
											2003-08-05 19:48:41 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								< tr > < th  class = "docinfo-name" > Organization:< / th > 
							 
						 
					
						
							
								
									
										
										
										
											2007-11-03 03:25:13 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								< td > < a  class = "first reference external"  href = "http://www.boost-consulting.com" > Boost Consulting< / a > , Indiana University < a  class = "reference external"  href = "http://www.osl.iu.edu" > Open Systems
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								Lab< / a > , University of Hanover < a  class = "last reference external"  href = "http://www.ive.uni-hannover.de" > Institute for Transport
							 
						 
					
						
							
								
									
										
										
										
											2003-08-05 19:48:41 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								Railway Operation and Construction< / a > < / td > < / tr > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< tr > < th  class = "docinfo-name" > Date:< / th > 
							 
						 
					
						
							
								
									
										
										
										
											2007-11-03 03:25:13 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								< td > 2006-09-11< / td > < / tr > 
							 
						 
					
						
							
								
									
										
										
										
											2003-08-05 19:48:41 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								< tr > < th  class = "docinfo-name" > Copyright:< / th > 
							 
						 
					
						
							
								
									
										
										
										
											2004-11-02 14:31:27 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								< td > Copyright David Abrahams, Jeremy Siek, and Thomas Witt 2003.< / td > < / tr > 
							 
						 
					
						
							
								
									
										
										
										
											2003-08-05 19:48:41 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								< / tbody > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< / table > 
							 
						 
					
						
							
								
									
										
										
										
											2006-09-11 22:08:18 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								<!--  Distributed under the Boost  --> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								<!--  Software License, Version 1.0. (See accompanying  --> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								<!--  file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)  --> 
							 
						 
					
						
							
								
									
										
										
										
											2005-05-20 15:32:55 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								< table  class = "docutils field-list"  frame = "void"  rules = "none" > 
							 
						 
					
						
							
								
									
										
										
										
											2003-08-05 19:48:41 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								< col  class = "field-name"  / > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< col  class = "field-body"  / > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< tbody  valign = "top" > 
							 
						 
					
						
							
								
									
										
										
										
											2006-09-11 22:08:18 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								< tr  class = "field" > < th  class = "field-name" > abstract:< / th > < td  class = "field-body" > <!--  Copyright David Abrahams 2006. Distributed under the Boost  --> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								<!--  Software License, Version 1.0. (See accompanying  --> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								<!--  file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)  --> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								The function output iterator adaptor makes it easier to create custom
							 
						 
					
						
							
								
									
										
										
										
											2003-08-05 19:48:41 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								output iterators. The adaptor takes a unary function and creates a
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								model of Output Iterator. Each item assigned to the output iterator is
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								passed as an argument to the unary function.  The motivation for this
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								iterator is that creating a conforming output iterator is non-trivial,
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								particularly because the proper implementation usually requires a
							 
						 
					
						
							
								
									
										
										
										
											2004-01-13 02:58:21 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								proxy object.< / td > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< / tr > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< / tbody > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< / table > 
							 
						 
					
						
							
								
									
										
										
										
											2007-11-03 03:25:13 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								< div  class = "contents topic"  id = "table-of-contents" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< p  class = "topic-title first" > Table of Contents< / p > 
							 
						 
					
						
							
								
									
										
										
										
											2003-08-05 19:48:41 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								< ul  class = "simple" > 
							 
						 
					
						
							
								
									
										
										
										
											2007-11-03 03:25:13 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								< li > < a  class = "reference internal"  href = "#header"  id = "id1" > Header< / a > < / li > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< li > < a  class = "reference internal"  href = "#function-output-iterator-requirements"  id = "id2" > < tt  class = "docutils literal" > < span  class = "pre" > function_output_iterator< / span > < / tt >  requirements< / a > < / li > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< li > < a  class = "reference internal"  href = "#function-output-iterator-models"  id = "id3" > < tt  class = "docutils literal" > < span  class = "pre" > function_output_iterator< / span > < / tt >  models< / a > < / li > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< li > < a  class = "reference internal"  href = "#function-output-iterator-operations"  id = "id4" > < tt  class = "docutils literal" > < span  class = "pre" > function_output_iterator< / span > < / tt >  operations< / a > < / li > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< li > < a  class = "reference internal"  href = "#example"  id = "id5" > Example< / a > < / li > 
							 
						 
					
						
							
								
									
										
										
										
											2003-08-05 19:48:41 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								< / ul > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< / div > 
							 
						 
					
						
							
								
									
										
										
										
											2006-09-11 22:08:18 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								<!--  Copyright David Abrahams 2006. Distributed under the Boost  --> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								<!--  Software License, Version 1.0. (See accompanying  --> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								<!--  file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)  --> 
							 
						 
					
						
							
								
									
										
										
										
											2007-11-03 03:25:13 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								< div  class = "section"  id = "header" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< h1 > < a  class = "toc-backref"  href = "#id1" > Header< / a > < / h1 > 
							 
						 
					
						
							
								
									
										
										
										
											2006-02-01 23:33:32 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								< pre  class = "literal-block" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								#include < boost/function_output_iterator.hpp> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< / pre > 
							 
						 
					
						
							
								
									
										
										
										
											2003-08-05 19:48:41 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								< pre  class = "literal-block" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								template < class UnaryFunction> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								class function_output_iterator {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								public:
							 
						 
					
						
							
								
									
										
										
										
											2004-01-12 19:30:48 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  typedef std::output_iterator_tag iterator_category;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  typedef void                     value_type;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  typedef void                     difference_type;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  typedef void                     pointer;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  typedef void                     reference;
							 
						 
					
						
							
								
									
										
										
										
											2003-08-05 19:48:41 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2004-01-27 04:13:36 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  explicit function_output_iterator();
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  explicit function_output_iterator(const UnaryFunction&  f);
							 
						 
					
						
							
								
									
										
										
										
											2003-08-05 19:48:41 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2004-01-13 13:51:28 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  /* see below */ operator*();
							 
						 
					
						
							
								
									
										
										
										
											2003-08-05 19:48:41 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								  function_output_iterator&  operator++();
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  function_output_iterator&  operator++(int);
							 
						 
					
						
							
								
									
										
										
										
											2004-01-12 19:30:48 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								private:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  UnaryFunction m_f;     // exposition only
							 
						 
					
						
							
								
									
										
										
										
											2003-08-05 19:48:41 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								};
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< / pre > 
							 
						 
					
						
							
								
									
										
										
										
											2006-02-01 23:33:32 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								< / div > 
							 
						 
					
						
							
								
									
										
										
										
											2007-11-03 03:25:13 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								< div  class = "section"  id = "function-output-iterator-requirements" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< h1 > < a  class = "toc-backref"  href = "#id2" > < tt  class = "docutils literal" > < span  class = "pre" > function_output_iterator< / span > < / tt >  requirements< / a > < / h1 > 
							 
						 
					
						
							
								
									
										
										
										
											2005-05-20 15:32:55 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								< p > < tt  class = "docutils literal" > < span  class = "pre" > UnaryFunction< / span > < / tt >  must be Assignable and Copy Constructible.< / p > 
							 
						 
					
						
							
								
									
										
										
										
											2004-01-12 19:30:48 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								< / div > 
							 
						 
					
						
							
								
									
										
										
										
											2007-11-03 03:25:13 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								< div  class = "section"  id = "function-output-iterator-models" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< h1 > < a  class = "toc-backref"  href = "#id3" > < tt  class = "docutils literal" > < span  class = "pre" > function_output_iterator< / span > < / tt >  models< / a > < / h1 > 
							 
						 
					
						
							
								
									
										
										
										
											2005-05-20 15:32:55 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								< p > < tt  class = "docutils literal" > < span  class = "pre" > function_output_iterator< / span > < / tt >  is a model of the Writable and
							 
						 
					
						
							
								
									
										
										
										
											2004-01-12 19:30:48 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								Incrementable Iterator concepts.< / p > 
							 
						 
					
						
							
								
									
										
										
										
											2003-08-05 19:48:41 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								< / div > 
							 
						 
					
						
							
								
									
										
										
										
											2007-11-03 03:25:13 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								< div  class = "section"  id = "function-output-iterator-operations" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< h1 > < a  class = "toc-backref"  href = "#id4" > < tt  class = "docutils literal" > < span  class = "pre" > function_output_iterator< / span > < / tt >  operations< / a > < / h1 > 
							 
						 
					
						
							
								
									
										
										
										
											2005-05-20 15:32:55 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								< p > < tt  class = "docutils literal" > < span  class = "pre" > explicit< / span >  < span  class = "pre" > function_output_iterator(const< / span >  < span  class = "pre" > UnaryFunction& < / span >  < span  class = "pre" > f< / span >  < span  class = "pre" > =< / span >  < span  class = "pre" > UnaryFunction());< / span > < / tt > < / p > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< table  class = "docutils field-list"  frame = "void"  rules = "none" > 
							 
						 
					
						
							
								
									
										
										
										
											2003-08-05 19:48:41 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								< col  class = "field-name"  / > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< col  class = "field-body"  / > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< tbody  valign = "top" > 
							 
						 
					
						
							
								
									
										
										
										
											2006-09-11 22:08:18 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								< tr  class = "field" > < th  class = "field-name" > Effects:< / th > < td  class = "field-body" > Constructs an instance of < tt  class = "docutils literal" > < span  class = "pre" > function_output_iterator< / span > < / tt > 
							 
						 
					
						
							
								
									
										
										
										
											2005-05-20 15:32:55 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								with < tt  class = "docutils literal" > < span  class = "pre" > m_f< / span > < / tt >  constructed from < tt  class = "docutils literal" > < span  class = "pre" > f< / span > < / tt > .< / td > 
							 
						 
					
						
							
								
									
										
										
										
											2003-08-05 19:48:41 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								< / tr > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< / tbody > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< / table > 
							 
						 
					
						
							
								
									
										
										
										
											2005-05-20 15:32:55 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								< p > < tt  class = "docutils literal" > < span  class = "pre" > operator*();< / span > < / tt > < / p > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< table  class = "docutils field-list"  frame = "void"  rules = "none" > 
							 
						 
					
						
							
								
									
										
										
										
											2003-08-05 19:48:41 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								< col  class = "field-name"  / > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< col  class = "field-body"  / > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< tbody  valign = "top" > 
							 
						 
					
						
							
								
									
										
										
										
											2005-05-20 15:32:55 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								< tr  class = "field" > < th  class = "field-name" > Returns:< / th > < td  class = "field-body" > An object < tt  class = "docutils literal" > < span  class = "pre" > r< / span > < / tt >  of unspecified type such that < tt  class = "docutils literal" > < span  class = "pre" > r< / span >  < span  class = "pre" > =< / span >  < span  class = "pre" > t< / span > < / tt > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								is equivalent to < tt  class = "docutils literal" > < span  class = "pre" > m_f(t)< / span > < / tt >  for all < tt  class = "docutils literal" > < span  class = "pre" > t< / span > < / tt > .< / td > 
							 
						 
					
						
							
								
									
										
										
										
											2003-08-05 19:48:41 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								< / tr > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< / tbody > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< / table > 
							 
						 
					
						
							
								
									
										
										
										
											2005-05-20 15:32:55 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								< p > < tt  class = "docutils literal" > < span  class = "pre" > function_output_iterator& < / span >  < span  class = "pre" > operator++();< / span > < / tt > < / p > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< table  class = "docutils field-list"  frame = "void"  rules = "none" > 
							 
						 
					
						
							
								
									
										
										
										
											2003-08-05 19:48:41 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								< col  class = "field-name"  / > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< col  class = "field-body"  / > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< tbody  valign = "top" > 
							 
						 
					
						
							
								
									
										
										
										
											2005-05-20 15:32:55 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								< tr  class = "field" > < th  class = "field-name" > Returns:< / th > < td  class = "field-body" > < tt  class = "docutils literal" > < span  class = "pre" > *this< / span > < / tt > < / td > 
							 
						 
					
						
							
								
									
										
										
										
											2003-08-05 19:48:41 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								< / tr > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< / tbody > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< / table > 
							 
						 
					
						
							
								
									
										
										
										
											2005-05-20 15:32:55 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								< p > < tt  class = "docutils literal" > < span  class = "pre" > function_output_iterator& < / span >  < span  class = "pre" > operator++(int);< / span > < / tt > < / p > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< table  class = "docutils field-list"  frame = "void"  rules = "none" > 
							 
						 
					
						
							
								
									
										
										
										
											2003-08-05 19:48:41 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								< col  class = "field-name"  / > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< col  class = "field-body"  / > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< tbody  valign = "top" > 
							 
						 
					
						
							
								
									
										
										
										
											2005-05-20 15:32:55 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								< tr  class = "field" > < th  class = "field-name" > Returns:< / th > < td  class = "field-body" > < tt  class = "docutils literal" > < span  class = "pre" > *this< / span > < / tt > < / td > 
							 
						 
					
						
							
								
									
										
										
										
											2003-08-05 19:48:41 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								< / tr > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< / tbody > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< / table > 
							 
						 
					
						
							
								
									
										
										
										
											2006-09-11 22:08:18 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								<!--  Copyright David Abrahams 2006. Distributed under the Boost  --> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								<!--  Software License, Version 1.0. (See accompanying  --> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								<!--  file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)  --> 
							 
						 
					
						
							
								
									
										
										
										
											2003-08-05 19:48:41 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								< / div > 
							 
						 
					
						
							
								
									
										
										
										
											2007-11-03 03:25:13 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								< div  class = "section"  id = "example" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< h1 > < a  class = "toc-backref"  href = "#id5" > Example< / a > < / h1 > 
							 
						 
					
						
							
								
									
										
										
										
											2004-01-12 04:17:26 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								< pre  class = "literal-block" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								struct string_appender
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								{
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    string_appender(std::string&  s)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        : m_str(& s)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    {}
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    void operator()(const std::string&  x) const
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        *m_str += x;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    std::string* m_str;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								};
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								int main(int, char*[])
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								{
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  std::vector< std::string>  x;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  x.push_back(" hello" );
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  x.push_back("  " );
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  x.push_back(" world" );
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  x.push_back(" !" );
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  std::string s = " " ;
							 
						 
					
						
							
								
									
										
										
										
											2006-09-11 22:08:18 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  std::copy(x.begin(), x.end(),
							 
						 
					
						
							
								
									
										
										
										
											2004-01-12 04:17:26 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            boost::make_function_output_iterator(string_appender(s)));
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  std::cout < <  s < <  std::endl;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  return 0;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								}
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< / pre > 
							 
						 
					
						
							
								
									
										
										
										
											2003-08-05 19:48:41 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								< / div > 
							 
						 
					
						
							
								
									
										
										
										
											2007-11-03 03:25:13 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								< / div > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< div  class = "footer" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< hr  class = "footer"  / > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< a  class = "reference external"  href = "function_output_iterator.rst" > View document source< / a > .
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								Generated by < a  class = "reference external"  href = "http://docutils.sourceforge.net/" > Docutils< / a >  from < a  class = "reference external"  href = "http://docutils.sourceforge.net/rst.html" > reStructuredText< / a >  source.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2004-01-12 02:49:55 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								< / div > 
							 
						 
					
						
							
								
									
										
										
										
											2003-08-05 19:48:41 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								< / body > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< / html >