How to turn this C++ into D?
    Patrick Jeeves via Digitalmars-d-learn 
    digitalmars-d-learn at puremagic.com
       
    Wed Nov  5 09:17:08 PST 2014
    
    
  
So this is more a stackoverflow question, but I feel like later 
searchers will be more likely to find it if I put it here.
if I have the following C++ code:
class foo
{
static std::list<foo*> foo_list;
typedef std::list<foo*>::iterator iterator;
public:
     foo()
     {
        foo_list.push_back(this);
     }
     ~foo()
     {
        foo_list.remove(this);
     }
     static void DO_TASK()
     {
         for(iterator i = foo_list.begin(); i < foo_list.end(); 
++i)
         {
             (*i)->process();
         }
         for(iterator i = foo_list.begin(); i < foo_list.end(); 
++i)
         {
             (*i)->advance();
         }
     }
     virtual void process() = 0;
     virtual void advance() = 0;
}
How can I turn this into D?  Is there a way to register that 
static list with the garbage collector so it doesn't look into it 
or anything?
Similarly, I feel like this would be an interface in D, but 
interfaces don't have constructors.
    
    
More information about the Digitalmars-d-learn
mailing list