# HG changeset patch # User David Demelier # Date 1556304720 -7200 # Node ID eda721611955619575536423952bb5d6802f654c # Parent eeb0bc58cd76b29a88ba7184d6b5d31fdd118081 irccd: use std::invoke in plugin_service::exec diff -r eeb0bc58cd76 -r eda721611955 libirccd-daemon/irccd/daemon/plugin_service.hpp --- a/libirccd-daemon/irccd/daemon/plugin_service.hpp Fri Apr 26 20:47:08 2019 +0200 +++ b/libirccd-daemon/irccd/daemon/plugin_service.hpp Fri Apr 26 20:52:00 2019 +0200 @@ -210,13 +210,12 @@ * \param args the arguments to pass */ template - void exec(std::shared_ptr plugin, Func fn, Args&&... args) + void exec(std::shared_ptr plugin, Func&& fn, Args&&... args) { assert(plugin); - // TODO: replace with C++17 std::invoke. try { - ((*plugin).*(fn))(std::forward(args)...); + std::invoke(std::forward(fn), *plugin, std::forward(args)...); } catch (const std::exception& ex) { throw plugin_error(plugin_error::exec_error, plugin->get_name(), ex.what()); } catch (...) {