Boost logo

Boost Users :

Subject: Re: [Boost-users] Converting a BOOST_FOREACH to use the new c++ 11 lambda syntax
From: Michael Caisse (mcaisse-lists_at_[hidden])
Date: 2013-01-01 13:53:55


On 01/01/2013 08:09 AM, Mathias Gaunard wrote:
> On 01/01/13 16:34, Sean Farrow wrote:
>> Hi Fokes:
>>
>> I’m trying to convert a BOOST_FOREACH loop to use the new lambda syntax:
>>
>> I have a ptree variable declared in a class of which the foreach is
>> part. I also have a vector<std::wstring> that I need to use within my
>> lambda.
>>
>> This all being the case, the following is the original BOOST_FOREACH:
>>
>> BOOST_FOREACH(boost::property_tree::ptree::value_type &v, IniTree)
>>
>>
>> IniSections.push_back(ConvertToWString(v.first));
>>
>> And the following is the converted lambda:
>>
>> std::for_each(IniTree.begin(), IniTree.end(), [&]
>> (boost::property_tree::ptree::value_type &v)
>>
>> {
>>
>>
>> IniSections.push_back(ConvertToWString(v.first));
>>
>> });
>>
>> Is this the right way to go about the conversion—have I missed anything?
>
> Why don't you use C++11 range-for loops instead?
>

My guess is Sean is using an MS compiler which doesn't have range-for )-:

-- 
Michael Caisse
ciere consulting
ciere.com

Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net