digitalmars.D.bugs - [Issue 16363] New: Cannot construct a random access range using
- via Digitalmars-d-bugs (33/33) Aug 07 2016 https://issues.dlang.org/show_bug.cgi?id=16363
https://issues.dlang.org/show_bug.cgi?id=16363 Issue ID: 16363 Summary: Cannot construct a random access range using frontTransversal Product: D Version: D2 Hardware: All OS: All Status: NEW Severity: enhancement Priority: P1 Component: phobos Assignee: nobody puremagic.com Reporter: kirsybuu gmail.com The current implementation of FrontTransversal and Transversal both do not attempt to implement length or opDollar when the underlying range supports it, thus even when using assumeNotJagged the output range will not be a random access range. import std.range; void main() { int[][] darr = [[0, 1, 2], [4, 5, 6]]; auto fT = frontTransversal!(TransverseOptions.assumeNotJagged)(darr); auto l = fT.length; auto s = fT[0 .. $]; static assert(isRandomAccessRange!(typeof(fT))); } alex.d(5): Error: no property 'length' for type 'FrontTransversal!(int[][], cast(TransverseOptions)2)' alex.d(6): Error: undefined identifier '__dollar' alex.d(7): Error: static assert (isRandomAccessRange!(FrontTransversal!(int[][], cast(TransverseOptions)2))) is false --
Aug 07 2016