Function Output Iterator
Table of Contents Header#include <boost/function_output_iterator.hpp> template <class UnaryFunction> class function_output_iterator { public: typedef std::output_iterator_tag iterator_category; typedef void value_type; typedef void difference_type; typedef void pointer; typedef void reference; explicit function_output_iterator(); explicit function_output_iterator(const UnaryFunction& f); /* see below */ operator*(); function_output_iterator& operator++(); function_output_iterator& operator++(int); private: UnaryFunction m_f; // exposition only }; function_output_iterator requirementsUnaryFunction must be Assignable and Copy Constructible. function_output_iterator modelsfunction_output_iterator is a model of the Writable and Incrementable Iterator concepts. function_output_iterator operationsexplicit function_output_iterator(const UnaryFunction& f = UnaryFunction());
operator*();
function_output_iterator& operator++();
function_output_iterator& operator++(int);
Examplestruct 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 = ""; std::copy(x.begin(), x.end(), boost::make_function_output_iterator(string_appender(s))); std::cout << s << std::endl; return 0; } |