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.