It will cause error during destructing any objects of classes derived from TypeVisitor=) (When object destroying, destructors of all base classes are called.)
I can declare abstract destructor but it's possible to create visitor without any allocated objects, which don't need non-trivial destructor.
But I need to declare virtual destructor to allow polymorphic deleting.