digitalmars.D - tupleof feature request
- bc (34/34) Sep 21 2007 i was thinking, it would be nice if you could do some of these things:
-
Jarrett Billingsley
(30/30)
Sep 21 2007
"bc"
wrote in message
i was thinking, it would be nice if you could do some of these things: import std.stdio; template Tuple(E...) { alias E Tuple; } alias Tuple!(int, int) TL; void main() { TL tl; struct S { int x; int y; } S s; s.x =3D 1; s.y =3D 2; = tl =3D s.tupleof; /* gives: C:\Code\D\Test\testtuple.d(21): Error: tl is not an lvalue C:\Code\D\Test\testtuple.d(21): Error: forward reference to type (int, = = int) C:\Code\D\Test\testtuple.d(21): Error: cannot implicitly convert = expression (tuple((s.X),(s.Y))) of type (int, int) to (int, int) */ auto tl2 =3D s.tupleof; writefln(tl2); // this outputs '00'. would be nicer if it did '12' tl2 =3D s.tupleof; // doesn't compile s.tupleof =3D tl2; // doesn't compile }
Sep 21 2007
"bc" <mi_emayl_adrez hotmail.com> wrote in message news:op.ty0sldi3u40fk4 hal9000... ------------------------------------------ i was thinking, it would be nice if you could do some of these things: import std.stdio; template Tuple(E...) { alias E Tuple; } alias Tuple!(int, int) TL; void main() { TL tl; struct S { int x; int y; } S s; s.x = 1; s.y = 2; tl = s.tupleof; auto tl2 = s.tupleof; writefln(tl2); tl2 = s.tupleof; // doesn't compile s.tupleof = tl2; // doesn't compile } ------------------------------------------ Don Clugston and I (and probably others ;) ) have suggested some kind of unification of tuples and structs before. You could do some cool stuff.
Sep 21 2007