View source code
Display the source code in std/range.d from which this page was generated on
github.
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.
Page wiki
View or edit the community-maintained wiki page associated with this page.
Function std.range.dropExactly
Similar to drop
and
but they call
dropBack
range.popFrontExactly(
and n
)range.popBackExactly(
instead.
n
)
Prototype
R dropExactly(R)( R range, size_t n ) if (isInputRange!R);
Note
Unlike
, drop
will assume that the
dropExactly
range
holds at least
elements. This makes n
faster than dropExactly
, but it also means that if drop
does
not contain at least range
elements, it will attempt to call n
popFront
on an empty range
, which is undefined behavior. So, only
use
popFrontExactly
when it is guaranteed that
holds at least
range
elements.
n
Example
import std.algorithm : equal, filterBidirectional; auto a = [1, 2, 3]; assert(a.dropExactly(2) == [3]); assert(a.dropBackExactly(2) == [1]); string s = "日本語"; assert(s.dropExactly(2) == "語"); assert(s.dropBackExactly(2) == "日"); auto bd = filterBidirectional!"true"([1, 2, 3]); assert(bd.dropExactly(2).equal([3])); assert(bd.dropBackExactly(2).equal([1]));
Authors
Andrei Alexandrescu, David Simcha, and Jonathan M Davis. Credit for some of the ideas in building this module goes to Leonardo Maffi.