
On Sun, Mar 27, 2011 at 3:59 PM, Lorenzo Caminiti <lorcaminiti@gmail.com> wrote:
On Sat, Mar 26, 2011 at 6:19 PM, Lorenzo Caminiti <lorcaminiti@gmail.com> wrote:
How can I program the following code (its local function and `factor` constant binding) using Boost.Phoenix, Boost.Lambda, and C++0x lambda
***Thanks for the examples but is there a way to make `factor` const in the closure?***
C++0x lambdas: #include <iostream> #include <vector> #include <algorithm> int main() { double sum = 0.0; int factor = 10; std::vector<double> v(3); v[0] = 1.0; v[1] = 2.0; v[2] = 3.0; std::for_each(v.begin(), v.end(), [&, factor](double num){ sum += factor * num; std::cout << "Summed: " << sum << std::endl; }); return 0; } Since factor is captured by copy it can't be modified (unless the keyword "mutable" appears after the parameter list). Yechezkel Mett