我尝试使用带有不同签名的boost :: function重载函数,但它不起作用。
我尝试使用template<Signature> Connection *connect(boost::function<Signature> f)
也失败了,因为boost :: bind没有隐式转换那种方式
我正在尝试做的正是boost :: signals的作用。 Boost信号既可以接受没有参数的函数对象,也可以接受带有N个参数的函数对象
我想知道如何在一个函数中接受这两种类型的函数对象。
答案 0 :(得分:1)
您可以使用可变参数模板:
template<typename R, typename... Args>
Connection* connect(boost::function<R (Args...)> f);
这将接受一个接受0个参数的函数或一个接受N个参数的函数。