On Wednesday, August 29, 2012 02:21:28 Tommi wrote: > Foreach loops can make reference variables, and function calls > can do it for the parameters passed in. So, my question is, > wouldn't it be better if we could, in general, make reference > variables?
Not going to happen. Unfortunately though, I don't remember all of Walter's reasons for it, so I can't really say why (partly due to complications it causes in the language, I think, but I don't know). Use a pointer, std.typecons.RefCounted, a class, or make your struct a reference type (which would probably mean having the data held in a separate struct with a pointer to it in the outer struct). It's really not hard to have a type which is a reference type if that's what you really want. You just can't declare a ref to a variable as a local variable. And really, the only two differences between using a pointer and being able to directly declare a reference like you can in C++ is the fact that a pointer can be null and that operations which don't use . require that you dereference the pointer first (e.g. ==). So, while there may be cases where being able to do something like ref var = otherVar; would be nice, it really doesn't buy you all that much. - Jonathan M Davis
