no need for exceptions or rtti in cpp optimizer
little optimization on traversePre