diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/salticidae/network.h | 9 | ||||
-rw-r--r-- | include/salticidae/type.h | 5 |
2 files changed, 7 insertions, 7 deletions
diff --git a/include/salticidae/network.h b/include/salticidae/network.h index c7b7f66..63c83be 100644 --- a/include/salticidae/network.h +++ b/include/salticidae/network.h @@ -32,11 +32,6 @@ namespace salticidae { -template<typename ClassType, typename ReturnType, typename... Args, typename... FArgs> -inline auto handler_bind(ReturnType(ClassType::* f)(Args...), FArgs&&... fargs) { - return std::function<ReturnType(Args...)>(std::bind(f, std::forward<FArgs>(fargs)...)); -} - /** Network of nodes who can send async messages. */ template<typename OpcodeType> class MsgNetwork: public ConnPool { @@ -527,8 +522,8 @@ template<typename O, O _, O __> void PeerNetwork<O, _, __>::listen(NetAddr listen_addr) { MsgNet::listen(listen_addr); listen_port = listen_addr.port; - this->reg_handler(handler_bind(&PeerNetwork::msg_ping, this, _1, _2)); - this->reg_handler(handler_bind(&PeerNetwork::msg_pong, this, _1, _2)); + this->reg_handler(generic_bind(&PeerNetwork::msg_ping, this, _1, _2)); + this->reg_handler(generic_bind(&PeerNetwork::msg_pong, this, _1, _2)); } template<typename O, O _, O __> diff --git a/include/salticidae/type.h b/include/salticidae/type.h index 13d3071..c454265 100644 --- a/include/salticidae/type.h +++ b/include/salticidae/type.h @@ -79,6 +79,11 @@ struct log2<1> { enum { value = 0 }; }; +template<typename ClassType, typename ReturnType, typename... Args, typename... FArgs> +inline auto generic_bind(ReturnType(ClassType::* f)(Args...), FArgs&&... fargs) { + return std::function<ReturnType(Args...)>(std::bind(f, std::forward<FArgs>(fargs)...)); +} + } #endif |