Boost logo

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