digitalmars.D.bugs - [Issue 586] New: Cannot index tuple with non-type elements
- d-bugmail puremagic.com (31/31) Nov 23 2006 http://d.puremagic.com/issues/show_bug.cgi?id=586
- Thomas Kuehne (17/36) Nov 25 2006 -----BEGIN PGP SIGNED MESSAGE-----
- d-bugmail puremagic.com (13/13) Apr 08 2007 http://d.puremagic.com/issues/show_bug.cgi?id=586
- d-bugmail puremagic.com (8/8) Apr 27 2007 http://d.puremagic.com/issues/show_bug.cgi?id=586
- d-bugmail puremagic.com (9/9) Jun 29 2008 http://d.puremagic.com/issues/show_bug.cgi?id=586
http://d.puremagic.com/issues/show_bug.cgi?id=586 Summary: Cannot index tuple with non-type elements Product: D Version: 0.174 Platform: PC OS/Version: Windows Status: NEW Severity: normal Priority: P2 Component: DMD AssignedTo: bugzilla digitalmars.com ReportedBy: kirklin.mcdonald gmail.com Take the following code: template Tu(T ...) { alias T[1] Tu; // Line 2 } void foo() { } void main() { alias Tu!(real, int) T; // Works, no problem. alias Tu!(4, int) U; // Results in error. alias Tu!(foo, int) V; // Results in error. alias Tu!("a", int) W; // Results in error. } The error in all three cases is: test.d(2): tuple T is used as a type test.d(X): template instance test.Tu!(<whatever>, int) error instantiating Any tuple containing elements which are not types cannot be indexed. This limits certain kinds of advanced template code. Bug 533 is a consequence of this bug. Bug 582 is essentially the same bug, but refers to slicing tuples rather than indexing them. --
Nov 23 2006
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 d-bugmail puremagic.com schrieb am 2006-11-23:http://d.puremagic.com/issues/show_bug.cgi?id=586Take the following code: template Tu(T ...) { alias T[1] Tu; // Line 2 } void foo() { } void main() { alias Tu!(real, int) T; // Works, no problem. alias Tu!(4, int) U; // Results in error. alias Tu!(foo, int) V; // Results in error. alias Tu!("a", int) W; // Results in error. } The error in all three cases is: test.d(2): tuple T is used as a type test.d(X): template instance test.Tu!(<whatever>, int) error instantiating Any tuple containing elements which are not types cannot be indexed. This limits certain kinds of advanced template code. Bug 533 is a consequence of this bug. Bug 582 is essentially the same bug, but refers to slicing tuples rather than indexing them.Added to DStress as http://dstress.kuehne.cn/compile/t/tuple_04_A.d http://dstress.kuehne.cn/compile/t/tuple_04_B.d http://dstress.kuehne.cn/compile/t/tuple_04_C.d http://dstress.kuehne.cn/compile/t/tuple_04_D.d http://dstress.kuehne.cn/compile/t/tuple_04_E.d http://dstress.kuehne.cn/compile/t/tuple_04_F.d http://dstress.kuehne.cn/compile/t/tuple_04_G.d Thomas -----BEGIN PGP SIGNATURE----- iD8DBQFFaI9YLK5blCcjpWoRAh5gAJoCHpGLGO1LRaQL9+xe0x4YhOgYxgCfVpYg CkX8VYBKc4X7fOVmS6zcHkw= =NTfb -----END PGP SIGNATURE-----
Nov 25 2006
http://d.puremagic.com/issues/show_bug.cgi?id=586 This is even true for the perhaps simpler version, with a pure expression tuple: int F; template A(T...) { alias T[0] B; // Fails here } alias A!(F) C; aliases.d(5): tuple T is used as a type aliases.d(8): template instance aliases.A!(F) error instantiating --
Apr 08 2007
http://d.puremagic.com/issues/show_bug.cgi?id=586 thomas-dloop kuehne.cn changed: What |Removed |Added ---------------------------------------------------------------------------- OS/Version|Windows |All Fixed DMD 1.013 --
Apr 27 2007
http://d.puremagic.com/issues/show_bug.cgi?id=586 bugzilla digitalmars.com changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |WORKSFORME Works in dmd 2.015 too. --
Jun 29 2008