-#define ADD_TRANSLATOR(classname, desc, grobs, read, write) \
- IMPLEMENT_FETCH_PRECOMPUTABLE_METHODS (classname); \
- ADD_THIS_TRANSLATOR (classname); \
- DEFINE_TRANSLATOR_DOC(classname, desc, grobs, read, write) \
- DEFINE_ACKNOWLEDGERS(classname) \
- DEFINE_TRANSLATOR_LISTENER_LIST(classname) \
-
-#define IMPLEMENT_FETCH_PRECOMPUTABLE_METHODS(T) \
- void \
- T::fetch_precomputable_methods (Translator_void_method_ptr ptrs[]) \
- { \
- ptrs[START_TRANSLATION_TIMESTEP] = \
- ((Translator_void_method_ptr) & T::start_translation_timestep == \
- (Translator_void_method_ptr) & Translator::start_translation_timestep) \
+#define ADD_TRANSLATOR_FAMILY(classname) \
+ IMPLEMENT_FETCH_PRECOMPUTABLE_METHODS (classname); \
+ DEFINE_ACKNOWLEDGERS(classname) \
+
+#define ADD_TRANSLATOR(classname, desc, grobs, read, write) \
+ ADD_TRANSLATOR_FAMILY (classname) \
+ ADD_THIS_TRANSLATOR (classname); \
+ DEFINE_TRANSLATOR_DOC(classname, desc, grobs, read, write) \
+ DEFINE_TRANSLATOR_LISTENER_LIST(classname) \
+
+#define IMPLEMENT_FETCH_PRECOMPUTABLE_METHODS(T) \
+ void \
+ T::fetch_precomputable_methods (Translator::Callback ptrs[]) \
+ { \
+ ptrs[START_TRANSLATION_TIMESTEP] = \
+ (&T::start_translation_timestep \
+ == &Translator::start_translation_timestep) \