21 Nov
2003
21 Nov
'03
7:53 p.m.
On Fri, 21 Nov 2003, Peter Dimov wrote:
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.
Ok, thanks. In any case, lambda's return type deduction rules do not cover the convention of ::element_type. Jaakko