number ranges
Salih Dincer
salihdb at hotmail.com
Fri Jan 21 20:16:16 UTC 2022
On Friday, 21 January 2022 at 17:25:20 UTC, Ali Çehreli wrote:
>
> Ouch! I tried the following code, my laptop got very hot, it's
> been centuries, and it's still running! :p
:)
> ```d
> size_t length() inout {
> auto len = 1 + (last - first) / step;
> return cast(size_t)len;
> }
> ```
> Does that not return 1 for an empty range?
Yes, but it will never return an empty range:
```d
enum e = 1;
auto o = inclusiveRange(e, e); // only one element
assert(!o.empty);
assert(o.length == e);
assert(o.equal([e]));
```
> Additionally, just because we *provide* a step, now we
> *require* division from all types (making it very cumbersome
> for user-defined types).
I don't quite understand what you mean?
Salih
More information about the Digitalmars-d-learn
mailing list