|
Boost : |
From: David Abrahams (dave_at_[hidden])
Date: 2005-06-09 03:18:42
Aleksey Gurtovoy <agurtovoy_at_[hidden]> writes:
> David Abrahams writes:
>> Aleksey Gurtovoy <agurtovoy_at_[hidden]> writes:
>>
>>>> I would say transform_iterator should return by value by default and
>>>> there should be an explicit notation to request by reference semantics
>>>> (if applicable).
>>>
>>> David, any reply on the above? I'd like to come to some kind of
>>> resolution on the outlined problem since it is real and hurting.
>>
>> I don't think there's much danger in transform_iterator itself, is
>> there? Isn't this all in make_transform_iterator?
>
> Yes, it's in the 'make_transform_iterator's current semantics. I
> should have phrased the above as
>
> I would say 'make_transform_iterator' should by default return a
> 'transform_iterator' which 'operator*' always returns by value
> and there should be an explicit notation to request by reference
> semantics (if it's compatible with the transformation function's
> return type).
Okay, so the next question. Do we
a. Pick a new name for this make_transform_iterator to avoid
breaking existing uses
b. Change the semantics to un-break older uses (and
if so, what do we call the current semantics?)
c. Something else?
-- Dave Abrahams Boost Consulting www.boost-consulting.com
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk