Il distruttore è forse la funzione più importante di una classe, quindi se lo dichiari lo devi anche definire. Poco importa se ne sei convinto o no.
Considera che non è raro trovare classi o strutture simili:
codice:
class IDisposer {
   public:
       virtual void dispose()=0;
   protected:
       virtual ~IDisposer()=0;
};
IDisposer::~IDisposer{}  // senza di questo, il linker da errore.