|
Boost Users : |
From: e r (erwann.rogard_at_[hidden])
Date: 2007-10-02 13:53:17
Nat Goodspeed wrote:
> e r wrote:
>
>> i'm thinking of using something like
>>
>> some_type* fo = new boost::bind(&A::f,_1);
>>
>> and use *fo in place of boost::bind(...). is this crazy? what should
>> some_type be?
>
> You can use boost::function to store the result of a boost::bind expression:
>
> http://boost.org/libs/bind/bind.html#with_boost_function
>
> For instance, you might write:
>
> boost::function<void(const A&)> bound = boost::bind(&A::f, _1);
>
> depending on the signature of A::f.
>
> Note, don't use 'new', just assign the value of boost::bind.
thanks!
i still need a little help, if possible.
boost::function<void(const boost::shared_ptr<A>&)> deref =
boost::bind(&boost::shared_ptr<A>::operator*, _1);
Functor ftor;
std::vector<boost::shared_ptr<A> > vec = ...;
for_each(
vec.begin(),
vec.end(),
boost::bind(
boost::ref(ftor),
boost::bind(&boost::shared_ptr<A>::operator*, _1)
)
);//fine
for_each(
vec.begin(),
vec.end(),
boost::bind(
boost::ref(ftor),
deref
)
);//not fine. see error below
//no match for call to (Functor) (boost::function<void ()(const
//boost::shared_ptr<A>&), std::allocator<void> >&)
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