|
Boost Users : |
From: Peter Dimov (pdimov_at_[hidden])
Date: 2003-11-24 10:32:26
David Abrahams wrote:
> "Peter Dimov" <pdimov_at_[hidden]> writes:
>
>> Hi,
>>
>> Jaakko Jarvi wrote:
>>>> The second alternative doesn't work since Lambda doesn't support
>>>> *_1 for shared_ptr.
>>>
>>> In particular, Lambda's return type deduction templates are not
>>> aware of shared_ptr.
>>
>> They do not need to be aware of shared_ptr. shared_ptr provides
>> ::element_type, for consistency with std::auto_ptr. boost::shared_ptr
also
>> has ::reference, although tr1::shared_ptr might not. You just need
>> to look for the individual typedef and not instantiate
>> iterator_traits prematurely.
>
> But what if iterator_traits is specialized? The typedef could say the
> wrong thing.
Technically yes. We know that 100% reliable return type inference is
impossible. In practice we want it to work most of the time, and currently
the opposite is true.
Of course this would have been mostly academic if the simpler bind(&X::f,
_1) syntax worked with Lambda.
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