我需要覆盖 和 之间的boost::signals2::signal
连接boost::function
。为此,我创建了以下模板函数:
template<typename T>
void bind(boost::signals2::signal<T> &signal, boost::function<T> function) {
// override code ...
}
我想bind
尽可能简单地使用它。从我在类似问题的帖子中读到的内容,模板参数应该从函数参数中推导出来。但在我的情况下,当没有明确的参数时它不起作用。
boost::signals2::signal<void ()> my_signal;
bind<void ()>(my_signal, boost::bind(&A::func, this)); // this works
bind(my_signal, boost::bind(&A::func, this)); // error: no matching function for call
我错过了什么吗?
是否有任何解决方法可以避免显式模板参数?