-typedef void (*action_fun)(simgrid::xbt::ReplayAction&);
-XBT_PUBLIC void xbt_replay_action_register(const char* action_name, action_fun function);
+using action_fun = std::function<void(simgrid::xbt::ReplayAction&)>;
+XBT_PUBLIC void xbt_replay_action_register(const char* action_name, const action_fun& function);