rendered paste body#include <algorithm>#include <iterator>#include <iostream>template<class T, class U>class Summer {public: Summer() : m_n(0) , m_sum(0) {} void operator() (const T& n) { std::cout << "operator() running: " << n << std::endl; m_n++; m_sum += n; } int count() const { return m_n; } T sum() const { return m_sum; } U mean() const { return (m_n != 0) ? m_sum / m_n : 0; }private: int m_n; T m_sum;};using namespace std;int main() { cout << "Input data end with ctrl+D" << endl; Summer<int,float> sum; for_each(istream_iterator<int>(cin),istream_iterator<int>(),sum);// Summer<int, double> sum = for_each(istream_iterator<int>(cin), istream_iterator<int>(),// Summer<int, double>()); cout << "count: " << sum.count() << endl << "sum: " << sum.sum() << endl << "mean: " << sum.mean() << endl; }