Boost logo

Boost Users :

Subject: [Boost-users] [Range, Phoenix] What am I missing...
From: Robert Jones (robertgbjones_at_[hidden])
Date: 2013-03-15 10:51:27


Hi Folks

Can anyone explain the output of this program...

#include <iostream>
#include <boost/range/algorithm/copy.hpp>
#include <boost/range/counting_range.hpp>
#include <boost/range/adaptor/reversed.hpp>
#include <boost/range/adaptor/transformed.hpp>
#include <boost/phoenix/bind/bind_function.hpp>
#include <boost/phoenix/core/argument.hpp>

int f( int i ) { return i * 2; }

int main( )
{
    using boost::adaptors::reversed;
    using boost::adaptors::transformed;
    using boost::counting_range;
    using boost::copy;
    using boost::phoenix::arg_names::_1;

    copy( counting_range( 1, 5 ) | reversed | transformed( f ),
            std::ostream_iterator<int>( std::cout, " " ) );
    std::cout << std::endl;

    copy( counting_range( 1, 5 ) | reversed | transformed( bind( f, _1 ) ),
            std::ostream_iterator<int>( std::cout, " " ) );
    std::cout << std::endl;
}

Which is...

8 6 4 2
1768406272 1768406272 1768406272 1768406272

I'm using Gcc 4.6.2 & Boost 1.53

Thx All.



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