【发布时间】:2013-05-28 23:08:56
【问题描述】:
我写了这段代码,它目前可以接受一个 void 回调并向它传递一个值。但是,有什么方法可以让用户能够设置多个参数?也许像 Callback Caller 之类的东西;而不是没有定义多个类型名的回调?我能以某种方式将这一切都放入一个类型名中吗?
例如,这是我的课
template <typename T>
class Callback
{
private:
std::vector<std::function <void (T)>> func;
public:
virtual void operator += (std::function<void (T)> _func)
{
func.push_back(_func);
}
};
我是这样使用的:
Callback<int> Test;
如果我只想将一个参数传递给我的函数,它就可以正常工作。但是,是否有可能让用户能够定义多个值,而无需多个类型名?
即
Callback< <(int, int, int)> > Test;
类似的东西?
【问题讨论】:
-
值得一提的是,您可以在 C++11 中使用
emplace_back而不是push_back来构建它。