#include #include #include #include #include class A { private: public: int one() const { return 1; } }; int foo(const int &x, const A &a) { return x + a.one(); } int main() { std::vector v; v.push_back(A()); v.push_back(A()); std::cout << std::accumulate(v.begin(), v.end(), 0, foo) << std::endl; return 0; }