On Saturday, 2 July 2016 at 19:46:53 UTC, Adam D. Ruppe wrote:
On Saturday, 2 July 2016 at 18:37:06 UTC, phant0m wrote:
How should I pass a struct variable in D effectively?
Passing by value is often the most efficient. It depends on
what exactly you have in the struct.
From the point of view of a hardcore C++ programmer, D looks very
promising and very strange at the same time. I understand that my
C++ habits are not applicable here, so I'm trying to find a
"correct" way to do basic things.
I took a simple task (for D learning purposes): to implement a
Point template "class" (something like Qt's QPoint).
As far as I want to be able to add two points, I've implemented
opAdd() function:
struct Point(T) {
static assert(__traits(isArithmetic, T));
T x;
T y;
Point opAdd(const ref Point other) const {
return Point(x + other.x, y + other.y);
}
}
Now, to be able to use rvalues, I need to add another one:
Point opAdd(const Point other) const {
return opAdd(other);
}
That's where my question came from. Of course, I can use just one
function, which accepts arguments by value. I'm just unsure
whether it's a good decision and a common practice.