Proposal: takeFront and takeBack

deadalnix deadalnix at gmail.com
Wed Jul 4 14:53:28 PDT 2012


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 win nothing else, because the register things are returned in is a 
trash register, so you have the returned thing, or garbage in it, you 
can assume nothing else.

The cost is neglectible. And any compiler is able to reduce that cost to 
0 when inlining if the value is not read. If the compiler don't inline, 
an extra MOV instruction is not will slow you down.


More information about the Digitalmars-d mailing list