⚠️ Warning: This is a draft ⚠️

This means it might contain formatting issues, incorrect code, conceptual problems, or other severe issues.

If you want to help to improve and eventually enable this page, please fork RosettaGit's repository and open a merge request on GitHub.

Sometimes, articles get rearranged, or even repurposed, and code no longer fits in. This is a place where such code may be stored, rather than deleted outright.

==[[C++]]== ===for_each === '''Compiler:''' [[g++]] 4.1.1

#include // std::cout, std::endl #include // std::vector #include // std::for_each

struct sum { int _sum;
sum() : _sum(0) {}; // Initialize sum with 0; void operator() (int a) { _sum += a; } // this function will be called for every element };

int main() { std::vector v; v.push_back(10); v.push_back(23); v.push_back(34);

/* Note that for_each gets a fresh instance of sum passed,
 * applies every element beginning with *v.begin() up to,
 * but not including v.end() to the function object
 * and returns a copy of it.

sum the_sum = std::for_each(v.begin(), v.end(), sum());

std::cout << "The sum is " << the_sum._sum << std::endl;
return 0;