Boost logo

Boost Users :

From: David A. Greene (greened_at_[hidden])
Date: 2006-01-24 11:54:06

Stuart Dootson wrote:

>>I had to pass "&tester" to the first bind expression because g++
>>complained about passing "tester" as "const Test &." Is passing by
>>reference supposed to work?
> Only if you use a reference wrapper - i.e. you can use
> boost::ref(tester) or boost::lambda::var(tester) rather than &tester

The documentation is misleading, then:

   The object argument can be a reference or pointer to the object, the
   BLL supports both cases with a uniform interface:

     bool A::foo(int) const;
     A a;
     vector<int> ints;
     find_if(ints.begin(), ints.end(), bind(&A::foo, a, _1));
     find_if(ints.begin(), ints.end(), bind(&A::foo, &a, _1));

> If you're using a shared_ptr, you'll either need to use tester.get()
> directly to get a Test* to pass into the bind expression
> bind(&Test::foo, tester.get(), value)
> or something like
> bind(&Test::foo, bind(boost::shared_ptr<Test>::get, tester), value)
> to delay the call to tester.get() until invocation of

Yuck. Oh well, guess that's what I'll do. Are there any plans to
add direct support for smart pointers?


Boost-users list run by williamkempf at, kalb at, bjorn.karlsson at, gregod at, wekempf at