On Monday, 22 June 2020 at 21:22:10 UTC, H. S. Teoh wrote:
On Mon, Jun 22, 2020 at 08:51:49PM +0000, mw via Digitalmars-d-learn wrote: [...]
>    auto line = range.front;
>    range.popFront;  // pop immediately
[...]

This is dangerous, because it assumes .front is not invalidated by .popFront. It will not work, for example, with byLine because .front returns a buffer which is reused by .popFront (a so-called "transient range").

This is valid reason, but as I replied in the other post: it depends on the actual underlying data structure and usage scenario, so:

"why not provide a popAndReturnFront(), and let the user decide based on his/her own actual usage?"




Reply via email to