[Issue 7624] New: std.typecons.Tuple slicing
    d-bugmail at puremagic.com 
    d-bugmail at puremagic.com
       
    Thu Mar  1 15:37:09 PST 2012
    
    
  
http://d.puremagic.com/issues/show_bug.cgi?id=7624
           Summary: std.typecons.Tuple slicing
           Product: D
           Version: D2
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: enhancement
          Priority: P2
         Component: DMD
        AssignedTo: nobody at puremagic.com
        ReportedBy: bearophile_hugs at eml.cc
--- Comment #0 from bearophile_hugs at eml.cc 2012-03-01 15:37:08 PST ---
std.typecons.Tuple supports both a "slice" method and normal array slicing
syntax:
import std.stdio, std.typecons;
void main() {
    Tuple!(int,float,string,ubyte) t4;
    t4[2] = "XXX";
    t4[3] = 99;
    writeln(t4);
    writeln(typeid(typeof(t4)), "\n");
    auto t2a = t4.slice!(1, 3);
    writeln(t2a);
    writeln(typeid(typeof(t2a)), "\n");
    auto t2b = t4[1 .. 3];
    writeln(t2b);
    writeln(typeid(typeof(t2b)), "\n");
}
Outout with DMD 2.059head:
Tuple!(int,float,string,ubyte)(0, nan, "XXX", 99)
std.typecons.Tuple!(int,float,string,ubyte).Tuple
Tuple!(float,string)(nan, "XXX")
std.typecons.Tuple!(float,string).Tuple
nanXXX
(float,immutable(char)[])
But the natural syntax, using [1..3], returns a typetuple. Having two different
kinds of tuples in a language is confusing, but slicing a kind tuple and see as
a result the other kind of tuple is a bit too much confusing.
Is it possible to modify D/Phobos to make  t4[1..3]   return a
std.typecons.Tuple (and then deprecate the "slice" method)?
-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
    
    
More information about the Digitalmars-d-bugs
mailing list