Yes. But the cost of copying the value and the cost of the exception are
separate.
The argument is not about performance, it's about loosing values.

Simply popping off the element could throw an exception (in the case of strings in D, you'll get a UTFException if the string is malformed). So, _regardless_ of whether you return an element, you potentially risk an exception being thrown (depending on the implementation of the container or
range).
It's not the same.

And so I think that exceptions are pretty much irrelevant to the
discussion of whether returning an element from popFront is a good idea or
not.

How would you implement an returning popFront for a generic container that does not leak values? It's not possible (at least in C++, not sure in D), so it is relevant. Maybe it was not the prime reason, but it is a good reason non the less.




Reply via email to