operator. is not overloaded, so it can never do anything reasonable on a placeholder.
Boost.Lambda (and Boost.Phoenix v1 and v2, which were based on Boost.Lambda) implements its own result protocol, not TR1, so Boost.Lambda functions will not work with anything using boost::result_of or std::tr1::result_of (as Boost.Range does).
However, Boost.Phoenix v3, released in Boost 1.47, is the official replacement for Boost.Lambda and implements the TR1 protocol result_of, and therefore plays well with boost::result_of (and therefore Boost.Range).
Your options should either use Boost.Bind instead of Boost.Lambda, in which case the following is valid:
transformed(bind(&myObjectType::myMember, _1))
or you can use Boost.Phoenix v3 instead of Boost.Lambda (either get Boost.Phoenix from the trunk now, or wait for Boost 1.47), in which case the Boost.Bind syntax is valid, as well as the following option
transformed(_1->*&myObjectType::myMember)
source share