Ho scritto questo codice e attualmente è in grado di accettare un callback del void e passare un valore ad esso. Tuttavia, esiste un modo per rendere l'utente in grado di impostare più argomenti? Forse qualcosa come Callback Caller; invece di callback senza definire più nomi di battitura? Posso inserire tutto questo in un unico typename in qualche modo?Esiste comunque la possibilità che un modello <typename T> accetti più valori?
Per esempio, qui è la mia classe
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);
}
};
Io lo uso come questo:
Callback<int> Test;
e funziona bene se voglio passare un solo argomento per la mia funzione. Tuttavia, è possibile rendere l'utente in grado di definire più valori, senza avere più di un nome tipografico?
I.e.
Callback< <(int, int, int)> > Test;
Qualcosa di simile a quello?
Vale la pena ricordare che è possibile utilizzare 'emplace_back' invece di' push_back' in C++ 11 per costruirlo in posizione. – chris