On 12/11/2014 1:49 PM, bearophile wrote:
Walter Bright:

struct Vec { float x = 1, y = 5, z = 9; }

auto v = new Vec(void);
auto av = new Vec[10] = void;
auto av2 = new Vec[10] = Vec(0, 0, 0);

D already does this.

D doesn't do that, not even one of those three :-)

I beg to differ:


struct Vec { float x = 1, y = 5, z = 9; }

void main()
{
  {
    Vec v;
    assert(v.x == 1 && v.y == 5 && v.z == 9);
  }
  {
    auto v = new Vec();
    assert(v.x == 1 && v.y == 5 && v.z == 9);
  }
  {
    auto v = cast(Vec*)malloc(Vec.sizeof * 10)[0..10];
  }
  {
    auto v = new Vec[10];
    v[] = Vec(0,0,0);
    assert(v[1].x == 0 && v[1].y == 0 && v[1].z == 0);
  }
}

Reply via email to