On 2/01/11 2:16 PM, bearophile wrote:
Is this good enough?

struct Vec {
     double[2] e;

     static enum Vec zero = Vec([0.0, 0.0]);

     this(real x, real y) {
         e[0] = x;
         e[1] = y;
     }
}

Well it works, so yes :-)

That's quite irritating. Why does the automatically generated one work, but not the hand written one. Grrr...

I also discovered that this works:

enum Vec zero = Vec([0.0, 0.0]);

this(double[2] v)
{
  foreach (size_t i, ref r; e)
    r = v[i];
}

Which works in the general case of an arbitrary sized vector.

Reply via email to