Passing structs to functions
    Adam D. Ruppe via Digitalmars-d-learn 
    digitalmars-d-learn at puremagic.com
       
    Sat Jul  2 13:40:00 PDT 2016
    
    
  
On Saturday, 2 July 2016 at 20:24:12 UTC, phant0m wrote:
> I took a simple task (for D learning purposes): to implement a 
> Point template "class" (something like Qt's QPoint).
Using ref is wasteful there regardless.... just take an ordinary 
Point (even const is optional if it is all value but it doesn't 
hurt).
I think a lot of C++ programmers overuse references. If you're 
passing a large thing, it makes sense, but for small things it 
often has an overall negative effect on performance, but I see 
people saying they ALWAYS use struct& just out of habit.
Even if you have an array slice or class object in there in D, 
they are already references, so you don't want to use ref again 
on top of it. Most the time, you're probably ok just passing a 
normal T or const T.
> As far as I want to be able to add two points, I've implemented 
>  opAdd() function:
opAdd is the old way in D, nowadays it is more like
Point opBinary(string op : "+")(const Point other) const {
       return Point(x + other.x, y + other.y);
}
    
    
More information about the Digitalmars-d-learn
mailing list