Boost logo

Boost Users :

From: Allen Bierbaum (allenb_at_[hidden])
Date: 2003-11-20 17:57:54


Hello all.

I am having trouble with the boost lambda library. I am convinced that
my troubles come from some little thing I am overlooking, but for the
life of me I can't seem to find the problem. I have been looking at it
for the entire afternoon with no solution in sight.

I have included some sample code below showing the basic idea of what I
am trying to accomplish. Can anyone provide me with a working solution?

The summary is:
- I have a vector of shared_ptr's to a class A
- That class has a method that returns a value I would like to test for
in a find_if call

============================================================

namespace bl = boost::lambda

class A
{
    int getInt();
};

class Foo
{
    A bar();
}

std::vector<shared_ptr<Foo> > foos;
shared_ptr<Foo> foo_ptr;
A test_val;

test_val = (bl::_1 ->* &Foo::bar )(foo_ptr);

int find_int = 10;
iter found = find_if(foos.begin(), foos.end(),
                      (bl::_1->* &Foo::bar).getInt() == child_guid);

====================================================================

Can anyone tell me how I can call a method from a lamda method iterating
over a sequence of shared_ptrs? And then how do I have this method
also call another method?

Thanks,
Allen


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