Function Output Iterator
Function Output Iterator
abstract: The function output iterator adaptor makes it easier to create custom output
iterators. The adaptor takes a unary function and creates a model of Output Itera-
tor. 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 proxy
object.
Table of Contents
Header
function_output_iterator requirements
function_output_iterator models
function_output_iterator operations
Example
Header
#include <boost/function_output_iterator.hpp>
explicit function_output_iterator();
1
function_output_iterator& operator++();
function_output_iterator& operator++(int);
private:
UnaryFunction m_f; // exposition only
};
function_output_iterator requirements
UnaryFunction must be Assignable and Copy Constructible.
function_output_iterator models
function_output_iterator is a model of the Writable and Incrementable Iterator concepts.
function_output_iterator operations
explicit function_output_iterator(const UnaryFunction& f = UnaryFunction());
Effects: Constructs an instance of function_output_iterator with m_f constructed from
f.
operator*();
Returns: An object r of unspecified type such that r = t is equivalent to m_f(t) for all
t.
function_output_iterator& operator++();
Returns: *this
function_output_iterator& operator++(int);
Returns: *this
Example
struct string_appender
{
string_appender(std::string& s)
: m_str(&s)
{}
std::string* m_str;
};
2
std::vector<std::string> x;
x.push_back("hello");
x.push_back(" ");
x.push_back("world");
x.push_back("!");
std::string s = "";
std::copy(x.begin(), x.end(),
boost::make_function_output_iterator(string_appender(s)));
return 0;
}