22 Nov
2003
22 Nov
'03
1:28 a.m.
"Peter Dimov"
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. -- Dave Abrahams Boost Consulting www.boost-consulting.com