export template <class N>
class Alloc {
public:
//  virtual N *get(); // it doesn't happen if we add this declaration
  virtual ~Alloc(); // it only happens with destructors
};

class ThreadAlloc;

class Thread {
public:
  static ThreadAlloc storage;
};

class ThreadAlloc : public Alloc<Thread> {
public:
  virtual ~ThreadAlloc();
};

ThreadAlloc::~ThreadAlloc() {}