$include_dir="/home/hyper-archives/boost-users/include"; include("$include_dir/msg-header.inc") ?>
From: Eelis van der Weegen (boost-users_at_[hidden])
Date: 2003-10-11 21:40:53
When Lambda's bind() is used to create a functor for dereferencing a
stored data member pointer given an instance pointer, it seems it is not
possible to pass the resulting functor a temporary instance pointer. For
example:
#include <boost/lambda/bind.hpp>
#include <boost/lambda/lambda.hpp>
struct S { int i; };
S * f ();
void g (S * p)
{
using namespace boost::lambda;
bind(&S::i, _1)(p); // ok
bind(&S::i, _1)(p + 0); // not ok, "no match for call ..."
bind(&S::i, _1)(f()); // not ok, "no match for call ..."
}
Does this restriction have a purpose? If not, is this something that
needs to be (and can be) fixed?
Regards,
Eelis van der Weegen