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); }
}

Reply via email to