View source code
							
							
						
								Display the source code in std/range/primitives.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 member std.range.primitives.isBidirectionalRange
Returns true if R is a bidirectional range. A bidirectional
range is a forward range that also offers the primitives back and
popBack. The following code should compile for any bidirectional
range.
						
				enum isBidirectionalRange(R)
				 = isForwardRange!R && is(typeof((R r) => r
				The semantics of a bidirectional range (not checkable during
compilation) are assumed to be the following (r is an object of
type R):
- rreturns (possibly a reference to) the last element in the range. Calling- .back - ris allowed only if calling- .back - rhas, or would have, returned- .empty - false.
See Also
The header of std for tutorials on ranges.
Example
alias R = int[];
R r = [0,1];
static assert(isForwardRange!R);           // is forward range
rAuthors
Andrei Alexandrescu, David Simcha, and Jonathan M Davis. 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.