http://d.puremagic.com/issues/show_bug.cgi?id=9871
[email protected] changed: What |Removed |Added ---------------------------------------------------------------------------- Summary|std.typecons.AsRange/asRang |std.typecons.asRange |e | --- Comment #1 from [email protected] 2013-04-03 21:15:04 PDT --- A simpler implementation: import std.typecons, std.typetuple, std.stdio, std.algorithm, std.range; bool validAsRange(T)() { if (!isTuple!T || NoDuplicates!(T.Types).length != 1) return false; foreach (i, _; T.Types) // Useless? if (T.tupleof[i].offsetof != T.Types[0].sizeof * i) return false; return true; } T.Types[0][] asRange(T)(ref T tup) if (validAsRange!T()) { return (cast(T.Types[0]*)&tup[0])[0 .. T.length]; } void main() { // demo auto a = [0]; auto b = [5]; auto c = [11]; auto d = [22]; Tuple!(int,int,int,int) tup = zip(a, b, c, d).front; auto result = tup.asRange.map!(x => x * 2).array; assert(result == [0, 10, 22, 44]); } -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
