View source code
Display the source code in std/range/package.d from which this
page was generated on github.
Report a bug
If you spot a problem with this page, click here to create a
Bugzilla issue.
Improve this page
Quickly fork, edit online, and submit a pull request for this page.
Requires a signed-in GitHub account. This works well for small changes.
If you'd like to make larger changes you may want to consider using
local clone.
Enum std.range.StoppingPolicy
Dictates how iteration in a zip
and lockstep
should stop.
By default stop at the end of the shortest of all ranges.
enum StoppingPolicy
: int { ... }
Enum members
Name | Description |
---|---|
longest
|
Stop when the longest range is exhausted |
requireSameLength
|
Require that all ranges are equal |
shortest
|
Stop when the shortest range is exhausted |
Example
import std .algorithm .comparison : equal;
import std .exception : assertThrown;
import std .range .primitives;
import std .typecons : tuple;
auto a = [1, 2, 3];
auto b = [4, 5, 6, 7];
auto shortest = zip(StoppingPolicy .shortest, a, b);
assert(shortest .equal([
tuple(1, 4),
tuple(2, 5),
tuple(3, 6)
]));
auto longest = zip(StoppingPolicy .longest, a, b);
assert(longest .equal([
tuple(1, 4),
tuple(2, 5),
tuple(3, 6),
tuple(0, 7)
]));
auto same = zip(StoppingPolicy .requireSameLength, a, b);
same .popFrontN(3);
assertThrown!Exception(same .popFront);
Authors
Andrei Alexandrescu, David Simcha, Jonathan M Davis, and Jack Stouffer. Credit for some of the ideas in building this module goes to Leonardo Maffi.
License
Copyright © 1999-2022 by the D Language Foundation | Page generated by ddox.