#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';
}
CiAgICAjaW5jbHVkZSA8bGlzdD4KICAgICNpbmNsdWRlIDxhbGdvcml0aG0+CiAgICAjaW5jbHVkZSA8aW9zdHJlYW0+CiAgICAgCiAgICBzdHJ1Y3QgU3VtIHsKICAgICAgICBTdW0oKSB7IHN1bSA9IDA7IH0KICAgICAgICB2b2lkIG9wZXJhdG9yKCkoaW50IG4pIHsgc3VtICs9IG47IH0KICAgICAKICAgICAgICBpbnQgc3VtOwogICAgfTsKICAgICAKICAgIGludCBtYWluKCkKICAgIHsKICAgICAgICBzdGQ6Omxpc3Q8aW50PiBudW1zezMsIDQsIDIsIDksIDE1LCAyNjd9OwogICAgIAogICAgICAgIFN1bSBzID0gc3RkOjpmb3JfZWFjaChudW1zLmJlZ2luKCksIG51bXMuZW5kKCksIFN1bSgpKTsKICAgICAKICAgICAgICBzdGQ6OmNvdXQgPDwgInN1bTogIiA8PCBzLnN1bSA8PCAnXG4nOwogICAgICAgIHN0ZDo6Y291dCA8PCAiZWxlbWVudHM6ICAiOwogICAgICAgIGZvciAoYXV0byBuIDogbnVtcykgewogICAgICAgICAgICBzdGQ6OmNvdXQgPDwgbiA8PCAiICI7CiAgICAgICAgfQogICAgICAgIHN0ZDo6Y291dCA8PCAnXG4nOwogICAgfQ==