On Thursday, 4 August 2022 at 13:08:21 UTC, pascal111 wrote:

1) Why the programmer needs to program "empty()", "front()", and "popFront()" functions for ranges while they exist in the language library? it seems there's no need to exert efforts for that. "https://dlang.org/phobos/std_range_primitives.html";

- These functions are wrappers to use something as range
- Ranges need to implement the functions to keep their data private, also there are complex types the need to handle data differently - Ranges must implement the functions so other function can recognize it as such (eg. `isInputRange`) - there is no common interface, it's determined by compile time

2) "front()", and "popFront()" are using fixed constants to move forward the range, while they should use variables.

`front()` is always using the first element BUT `popFront()` copies all elements except the first one into the variable (and overwrites it), so it moves the data forward.
  • Ranges pascal111 via Digitalmars-d-learn
    • Re: Ranges Salih Dincer via Digitalmars-d-learn
    • Re: Ranges frame via Digitalmars-d-learn

Reply via email to