On Friday, 11 January 2013 at 18:22:30 UTC, Charles Hixson wrote:
I was looking for a way to create a weak reference to either a struct or a class. I need to be able to use it to automatically generate an active reference on access. (I intend to do this by rolling in data from a file.)

Any guidance as to where I should look?

Looks like you'll have to create the access yourself, you can forward access to the new ptr via a property call by the function you name. This works.

  struct S {
    int x;
    S* _s;  //for weak ptr.

    //constructor details so we can show it's
    //differences in the lower prints.
    S* s(int x) {
      if (_s is null)
        _s = new S(x);

      return _s;
    }

    void print(){writeln(this);}
  }

  S test;
  test.print();
  test.s(10).print();
  test.print();


I've tried making a weakPtr template function, however it complains about a nested function call (perhaps cause it was within a unittest); Shows the problem(s) on that side.

It's possible to write a mixin that could do those details for you.

Reply via email to