On 4/24/15 9:23 AM, ref2401 wrote:
What advantages do ref params give over pointer params?
struct MyStruct {
string str;
this(string str) { this.str = str; }
}
void processRef(ref MyStruct ms) {
writeln("processRef: ", ms);
}
void processPointer(MyStruct* ms) {
writeln("processPointer: ", *ms);
}
void main(string[] args) {
auto ms = MyStruct("the ultimate answer to everythin is the number
42");
processRef(ms);
processPointer(&ms);
}
A ref param is somewhat safer, because you cannot do pointer arithmetic
on it. A ref will ALWAYS point at the same memory location, because it
cannot be rebound.
The compiler can also take advantage of the characteristics of ref, as
it does with the -dip25 switch.
-Steve