Is there a weak pointer or references in D?
    Era Scarecrow 
    rtcvb32 at yahoo.com
       
    Fri Jan 11 13:12:39 PST 2013
    
    
  
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.
    
    
More information about the Digitalmars-d-learn
mailing list