digitalmars.D.bugs - [Issue 2913] New: aliasing a ref type is not possible
- d-bugmail puremagic.com Apr 29 2009
- d-bugmail puremagic.com Apr 30 2009
- d-bugmail puremagic.com Apr 30 2009
- d-bugmail puremagic.com May 04 2009
http://d.puremagic.com/issues/show_bug.cgi?id=2913 Summary: aliasing a ref type is not possible Product: D Version: unspecified Platform: PC OS/Version: Linux Status: NEW Severity: normal Priority: P2 Component: DMD AssignedTo: bugzilla digitalmars.com ReportedBy: andrei metalanguage.com alias ref int rint; rint foo() { static int x; return x; } void main() { auto p = &(foo()); } This doesn't work. It led me to write the ugliest code I have ever written. Search std.range for "mixin" if you want to see ugly stuff. --
Apr 29 2009
http://d.puremagic.com/issues/show_bug.cgi?id=2913 ------- Comment #1 from kamm-removethis incasoftware.de 2009-04-30 02:40 ------- I'm not sure allowing that alias is a good idea, as ref int and int still name the same type. If that alias worked, wouldn't you expect alias ref int rint; int i = 3; rint ri = i; ri = 4; assert(i == 4); --
Apr 30 2009
http://d.puremagic.com/issues/show_bug.cgi?id=2913 ------- Comment #2 from andrei metalanguage.com 2009-04-30 08:12 ------- (In reply to comment #1)I'm not sure allowing that alias is a good idea, as ref int and int still name the same type. If that alias worked, wouldn't you expect alias ref int rint; int i = 3; rint ri = i; ri = 4; assert(i == 4);
The ref would be only effective in a function signature. This can be done (I discussed it with Walter). The problem is, Walter has a lot on his plate already. Yet that doesn't make my code look any better :o). --
Apr 30 2009
http://d.puremagic.com/issues/show_bug.cgi?id=2913 ------- Comment #3 from maxmo pochta.ru 2009-05-04 08:44 ------- dup of bug 2753? --
May 04 2009









d-bugmail puremagic.com 