A little preprocessor trick.

Fake dynamic dispatch, in a way.