Hello,

I have a class "A" and I'd like to keep a list of all the created instances of 
this class. To do that, I have a static List!(A) in the A class and, in the 
constructor, I add each new instance to this list. This gives me the following 
code:

class A {
   private static List!(A) s_instances;

   public this() {
      s_instances.add(this);
   }

   public ~this() {
      s_instances.remove(this);
   }

   public static void printAll() {
      foreach (A instance; s_instances)
         print(instance.toString());
   }
}

But then, since all the instances are referenced by the static list, they are 
never garbage-collected, which could be a problem. In some other languages, 
this can be solved using weak references, but I haven't found any informations 
about using weak references in D. Is there any way to solve this problem?

Thanks,
Simon

Reply via email to