本来想用function1
苦思冥想了半天,终于用bind绑定函数,然后将bind的返回对象bind_t
然后想用同样的方法bind绑定member function,再分离重载……谁又知member function(void)和function(T)都是L=boost::_bi::list1这样的形式……然后再苦思冥想分离……
最后:
void BindedCall( boost::_bi::bind_t〈R, F, boost::_bi::list0〉 Func ) // function(void), 不读入
void BindedCall( boost::_bi::bind_t〈R, F, boost::_bi::list1〈boost::arg〈1〉〉〉 Func ) // function(T), 读入
void BindedCall( boost::_bi::bind_t〈R, F, boost::_bi::list1〈boost::reference_wrapper〈REFT〉〉〉 Func ) // member function(void), 不读入
void BindedCall( boost::_bi::bind_t〈R, F, boost::_bi::list2〈A1,A2〉〉 Func ) // member function(T),读入
这4种形式
知道这并不好看,将就着吧。
分离的模版具体方法参见 boost::bind 和 boost::bind_t Ref:http://blog.csdn.net/lyskyly/archive/2006/10/28/1354273.aspx