Boost logo

Boost Users :

From: PJ Durai (pjdtech2000_at_[hidden])
Date: 2008-03-06 13:40:29


On 3/6/08, Jean-Pierre Bergamin <james_at_[hidden]> wrote:
> Hello
>
> > I couldn't figure out how to use a logical negation in the
> > following situation.
> >
> > struct IsConditionValid : public unary_function<Event, bool> {
> > public:
> > bool operator() (const Event& event)const {} };
> >
> > remove_copy_if(events.begin(), events.end(),
> > back_inserter(result),
> > IsConditionValid()); <-- how to
> > negate the condition object?
> >
> > What I really need is '! IsConditionValid()'.
> >
> > How can it be done using may be boost::bind ?
>
> If you already have a unary predicate (as your IsConditionValid functor),
> you can also use the std::not1 function to negate the predicate:
>
> remove_copy_if(
> events.begin(), events.end(),
> back_inserter(result),
> not1(IsConditionValid())
> );
>
> Bind overloads the ! operator for your convenience
>
> #include <boost/bind.hpp>
> ...
>
> remove_copy_if(
> events.begin(), events.end(),
> back_inserter(result),
> !boost::bind(IsConditionValid(), _1)
> );
>
>

Thanks Jean-Pierre. That did the trick.


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