Boost logo

Boost Users :

From: Peter Dimov (pdimov_at_[hidden])
Date: 2004-01-23 10:32:34


Hossein Haeri wrote:
> Dear all,
>
> I've got a ternary function (which is std::find), and
> want to bind the first and second parameters (to the
> begining and the end of a std::vector). Then send the
> result to compose2 to check the equality for the end
> of the vector. Here is what I did:
>
> copy_if(istream_iterator<Terminal>(cin),
> istream_iterator<Terminal>(),
> back_inserter(temp),
> compose2(equal<set<Terminal>::iterator>(),
> bind1st(bind1st_3(ptr_fun(f), V_.begin()),
> V_.end()),
> V_.end())));
>
> (I've prepared any goodie needed by ternary functions
> for the above statement: ptr_fun, bind1st_3, ...)
>
> Dev-C++ 4.9.8.0 (GCC 3.3.2 I think), gives me several
> errors (including "Reference to Reference" problem),
> and I'm nearly convinced not to continue it this way.
>
> Now, how do you, boost guys, do that?

You probably need

boost::bind(equal<set<Terminal>::iterator>(),
    boost::bind(f, V_.begin(), V_.end(), _1),
    V_.end()
)


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