
    #include <list>
    #include <algorithm>
    #include <iostream>
     
    struct Sum {
        Sum() { sum = 0; }
        void operator()(int n) { sum += n; }
     
        int sum;
    };
     
    int main()
    {
        std::list<int> nums{3, 4, 2, 9, 15, 267};
     
        Sum s = std::for_each(nums.begin(), nums.end(), Sum());
     
        std::cout << "sum: " << s.sum << '\n';
        std::cout << "elements:  ";
        for (auto n : nums) {
            std::cout << n << " ";
        }
        std::cout << '\n';
    }