我寫了這段代碼,它現在可以接受一個無效回調並將一個值傳遞給它。但是,有什麼方法可以讓用戶能夠設置多個參數?也許像Callback Caller這樣的東西;而不是定義多個類型名稱的回調?我能不能將這一切歸入一個類型名稱?有沒有反正我可以做一個模板<typename T>接受多個值?
例如,這裏是我的類
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;
如果我想只有一個參數傳遞給我的功能,它工作得很好。但是,是否有可能讓用戶能夠定義多個值,而沒有多個typename?
I.e.
Callback< <(int, int, int)> > Test;
類似的東西?
值得一提的是,您可以在C++ 11中使用'emplace_back'而不是'push_back'來構建它。 – chris