Passing rvalues to functions expecting const ref
    Minas Mina 
    minas_mina1990 at hotmail.co.uk
       
    Sun Dec 23 03:41:57 PST 2012
    
    
  
Hi. In C++, I can do this:
struct Vector3
{
   Vector3(_x, _y, _z); // constructor
};
float dot(const Vector3 &v, const Vector3 &u);
dot(Vector3(0, 0, 0), Vector3(1, 1, 1));
------------------------------------
In D, I can't -- and it's really annoying, because I am forced to 
make a copy, i.e:
dot(Vector3 v, Vector3 u);
I don't want this.
The other solution is this:
Vector3 v = {0, 0, 0};
Vector3 u = {1, 1, 1};
dot(v,u); // dot(const ref Vector3 v, const ref Vector3 u);
But it's not as clean.
Why can't I do what I can in C++? Is it a technical or a design 
decision? Are there plans to support it?
    
    
More information about the Digitalmars-d-learn
mailing list