Boost logo

Boost :

Subject: Re: [boost] [local] Help for the Alternatives section
From: Michael Caisse (boost_at_[hidden])
Date: 2011-03-27 18:20:54


On 03/27/2011 06:48 AM, Lorenzo Caminiti wrote:
> On Sat, Mar 26, 2011 at 8:05 PM, Michael Caisse
> <boost_at_[hidden]> wrote:
>
>> On 03/26/2011 04:46 PM, Steven Watanabe wrote:
>>
>>> AMDG
>>>
>>> On 03/26/2011 04:27 PM, Michael Caisse wrote:
>>>
>>>> #include<boost/phoenix/phoenix.hpp>
>>>> #include<boost/phoenix/statement.hpp>
>>>> #include<iostream>
>>>> #include<vector>
>>>> #include<algorithm>
>>>>
>>>> int main() {
>>>> double sum = 0.0;
>>>> int factor = 10;
>>>>
>>>> using namespace boost::phoenix;
>>>> using namespace boost::phoenix::placeholders;
>>>>
>>>> std::vector<double> v(3);
>>>> v[0] = 1.0; v[1] = 2.0; v[2] = 3.0;
>>>> std::for_each(v.begin(), v.end(), (
>>>> ref(sum) += factor * _1,
>>>> std::cout<< "Summed: "<< ref(sum)<< "\n" )
>>>> );
>>>> return 0;
>>>> }
>>>>
>>>>
>> std::cout<< val("Summed: ")<< ref(sum)<< "\n"
>>
>>
> I tried this but it didn't work... why?
>

Because you didn't try what was pasted above (o;

I think it is great that you are putting together an Alternative section.

> #include<boost/spirit/include/qi.hpp>
> #include<boost/spirit/include/phoenix_core.hpp>
> #include<boost/spirit/include/phoenix_operator.hpp>
> #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(), (
> boost::phoenix::ref(sum) += factor * boost::spirit::qi::_1,
> std::cout<< boost::phoenix::val("Summed: ")<<
> boost::phoenix::ref(sum)<< "\n"
> ));
>
> std::cout<< sum<< std::endl;
> return 0;
> }
>
>

-- 
Michael Caisse
Object Modeling Designs
www.objectmodelingdesigns.com

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk