#include "function_input_iterator.hpp" #include #include #include using namespace std; struct Test { typedef double result_type; double operator ()() { return cnt++; } Test() : cnt (0) {} int cnt; }; template struct Constant { typedef T result_type; explicit Constant (T _c) : c (_c) {} T operator()() { return c; } T c; }; int main () { using namespace boost; Test test; copy (make_function_input_iterator (test), make_function_input_iterator (test,5), ostream_iterator (cout, " ")); copy (make_function_input_iterator (test), make_function_input_iterator (test,5), ostream_iterator (cout, " ")); copy (make_function_input_iterator (test), make_function_input_iterator (test, 5), ostream_iterator (cout, " ")); copy (make_function_input_iterator (test), make_function_input_iterator (test, 5), ostream_iterator (cout, " ")); cout << '\n'; typedef boost::mt19937 rng_t; rng_t rng; boost::variate_generator > tn (rng, boost::normal_distribution<> (0, 1)); copy (make_function_input_iterator (tn), make_function_input_iterator (tn,5), ostream_iterator (cout, " ")); cout << '\n'; copy (make_function_input_iterator (tn), make_function_input_iterator (tn,5), ostream_iterator (cout, " ")); cout << '\n'; copy (make_function_input_iterator (Constant (0)), make_function_input_iterator(Constant(0),5), ostream_iterator (cout, " ")); }