From: Peter Dimov (pdimov_at_[hidden])
Date: 2007-04-28 12:13:59
Daniel Walker wrote:
> On 4/27/07, Peter Dimov <pdimov_at_[hidden]> wrote:
>> Daniel Walker wrote:
>>> _1 == _2 // ambiguous
>>> lambda::hold(_1) == _2 // lambda expression
>>> lambda::release(_1) == _2 // 3rd-party expression
>> I think that the right thing here (if we take the interoperability
>> issue to heart) is to make
>> _1 == _2
>> "just work". It's an interesting challenge, but it's not impossible
>> since that is exactly what is_bind_expression is intended to solve.
> OK, I think you're bring up something new here with is_bind_expression
> that I haven't thought of yet. But first back to placeholders. _1 ==
> _2 will "just work" as long as lambda is the only party overloading
It won't if you haven't included a lambda header or if you're using a
compiler that is supported by Bind, but not by Lambda.
The idea of "just works" is that _1 == _2 for Bind placeholders should be
resolved by Bind without an ambiguity, yet it should still be recognized by
Lambda as a subexpression. _1 + _2, however, should be picked up by Lambda
because Bind does not support operator+, only relations and logical not.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk