|
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