View source code
Display the source code in std/range/package.d from which thispage was generated on github.
Report a bug
If you spot a problem with this page, click here to create aBugzilla 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 usinglocal clone.
Function std.range.dropBackOne
dropOne is a convenience function which calls
range and returns range.
Unlike popFront, the range argument is passed by copy, not by ref.
R dropBackOne(R)(
R range
)
if (isBidirectionalRange!R);
dropOne makes it easier to pop an element from a range rvalue
and then pass it to another function within a single expression,
whereas popFront would require multiple statements.
dropBackOne provides the same functionality but instead calls
range.
Example
import std .algorithm .comparison : equal;
import std .algorithm .iteration : filterBidirectional;
import std .container .dlist : DList;
auto dl = DList!int(9, 1, 2, 3, 9);
assert(dl[] .dropOne() .dropBackOne() .equal([1, 2, 3]));
auto a = [1, 2, 3];
writeln(a .dropOne()); // [2, 3]
writeln(a .dropBackOne()); // [1, 2]
string s = "日本語";
import std .exception : assumeWontThrow;
assert(assumeWontThrow(s .dropOne() == "本語"));
assert(assumeWontThrow(s .dropBackOne() == "日本"));
auto bd = filterBidirectional!"true"([1, 2, 3]);
assert(bd .dropOne() .equal([2, 3]));
assert(bd .dropBackOne() .equal([1, 2]));
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-2026 by the D Language Foundation | Page generated by ddox.