View source code
Display the source code in std/datetime/interval.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.

Struct std.datetime.interval.PosInfIntervalRange

A range over a PosInfInterval. It is an infinite range.

struct PosInfIntervalRange(TP)
if (isTimePoint!TP);

PosInfIntervalRange is only ever constructed by PosInfInterval. However, when it is constructed, it is given a function, func, which is used to generate the time points which are iterated over. func takes a time point and returns a time point of the same type. For instance, to iterate over all of the days in the interval PosInfInterval!Date, pass a function to PosInfInterval's fwdRange where that function took a Date and returned a Date which was one day later. That function would then be used by PosInfIntervalRange's popFront to iterate over the Dates in the interval - though obviously, since the range is infinite, use a function such as std.range.take with it rather than iterating over all of the dates.

As the interval goes to positive infinity, the range is always iterated over forwards, never backwards. func must generate a time point going in the proper direction of iteration, or a DateTimeException will be thrown. So, the time points that func generates must be later in time than the one passed to it. If it's either identical or earlier in time, then a DateTimeException will be thrown.


front[get] TPThe first time point in the range.
func[get] TP delegate(in TP)The function used to generate the next time point in the range.
interval[get] PosInfInterval!TPThe interval that this range currently covers.
save[get] PosInfIntervalRangeReturns a copy of this.


popFront Pops front from the range, using func to generate the next time point in the range.


Jonathan M Davis


Boost License 1.0.