Boost logo

Boost Users :

From: Niko Vuokko (niko.vuokko_at_[hidden])
Date: 2008-07-27 02:23:57


Meryl Silverburgh wrote:
> Hi,
>
> Can you please tell me if there is an easy way to replace the
> following for loop using boost:lambda?
>
> I have a vector of A, i want to call 'aMethod of each A, and stop it
> when one of them return true.
>
> for (vector<A*>::const_iterator iter = aList.begin() ; iter !=
> aList.end(); ++iter) {
>
> A* anA = (*iter);
>
> // break out the for loop if aMethod return true;
> if (anA->aMethod()){
> break;
> }

How about trying

#include <boost/lambda/bind.hpp>
...
iter = find_if( aList.begin(), aList.end(), bind(&A::aMethod, *_1) );


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