Proposal: takeFront and takeBack

Timon Gehr timon.gehr at gmx.ch
Wed Jul 4 15:03:02 PDT 2012


On 07/04/2012 11:53 PM, deadalnix wrote:
> Le 04/07/2012 20:40, Jonathan M Davis a écrit :
>> On Wednesday, July 04, 2012 12:55:44 Tobias Pankrath wrote:
>>>> Many languages does this (it doesn't mean it is the right thing
>>>> to do). Do you know why this shouldn't be done ?
>>>
>>> In C++ it was exception safety, wasn't it?
>>
>> I believe that it was purely a question of speed. If popFront returns an
>> element, then that element gets copied, and if you didn't need to
>> access the
>> element, then that's wasted cycles. You have to worry about exceptions in
>> either case, depending on the what popFront is doing.
>>
>> - Jonathan M Davis
>
> If you return by reference, you get an overhead of 1 MOV instruction.
> This is ridiculous.
>

You get an 'overhead' of calling front, which is potentially unbounded.

struct Map(...){
     ...
     @property auto ref front() { return f(otherRange.front); }
}


More information about the Digitalmars-d mailing list