$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
Subject: Re: [boost] [local] Help for the Alternatives section
From: Yechezkel Mett (ymett.on.boost_at_[hidden])
Date: 2011-03-29 07:51:15
On Sun, Mar 27, 2011 at 3:59 PM, Lorenzo Caminiti <lorcaminiti_at_[hidden]> wrote:
> On Sat, Mar 26, 2011 at 6:19 PM, Lorenzo Caminiti <lorcaminiti_at_[hidden]> 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