Boost logo

Boost :

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
> operator==.

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