std.range.iota enhancement: supporting more types (AKA issue 10762)
Francesco Cattoglio
francesco.cattoglio at gmail.com
Tue Dec 24 03:47:10 PST 2013
On Tuesday, 24 December 2013 at 11:30:32 UTC, Jakob Ovrum wrote:
> On Tuesday, 24 December 2013 at 11:25:04 UTC, Francesco
> Cattoglio wrote:
>> There's a catch: if we want bidirectional, we need the last
>> element of the range.
> Are you sure you understand bidirectional ranges correctly? Any
> range that has the `back` property and `popBack` method are
> bidirectional.
Correct, but there's no way to compute "back" with less than O(n)
complexity, unless division by increment is available. (Actually,
I think we can achieve O(log n) with multiplication alone, but I
think it might be lots of work with very little benefits)
I should have specified better: we need to provide `back', and
Andrei suggested that no primitive should be more than complex
than O(1).
More information about the Digitalmars-d
mailing list