Yes, the destructor is completely redundant.
As you’ve said yourself the code has other warnings signs. Using typedef struct
for instance makes no sense whatsoever in C++, it’s as redundant as the empty destructor: The code was written by somebody with a marginal grasp of C++, there are bound to be more gotchas (for one thing, the class name is invalid due to the leading underscore in global scope).