[Issue 13824] New: std.range.transposed irrevocably modifies subranges
via Digitalmars-d-bugs
digitalmars-d-bugs at puremagic.com
Fri Dec 5 22:31:05 PST 2014
https://issues.dlang.org/show_bug.cgi?id=13824
Issue ID: 13824
Summary: std.range.transposed irrevocably modifies subranges
Product: D
Version: D2
Hardware: All
OS: All
Status: NEW
Severity: normal
Priority: P1
Component: Phobos
Assignee: nobody at puremagic.com
Reporter: hsteoh at quickfur.ath.cx
Code:
------
void main() {
import std.stdio;
import std.range;
auto data = [ [1,2,3], [4,5,6], [7,8,9] ];
writeln(data.transposed());
writeln(data);
}
------
Output:
------
[[1, 4, 7], [2, 5, 8], [3, 6, 9]]
[[], [], []]
------
This limits the usefulness of transposed(), since a copy of the original range
of ranges must be made if it needs to be used again in its original form after
iterating over its transposed() wrapper.
--
More information about the Digitalmars-d-bugs
mailing list