Je veux prendre un nombre variable d'arguments de fonction, et dans la fonction elle-même, enveloppe chaque argument de fonction en utilisant une classe wrapper de modèle et passe ces classes wrapper comme arguments à une autre fonction.Comment utiliser des modèles variadiques pour envelopper un nombre variable d'arguments de fonction?
Dites si j'ai une classe de modèle qui enveloppe simplement une variable.
template<class T>
class Wrapper
{
public:
Wrapper(T t) : t_(t)
.
.
{}
private:
T t_;
}
et moi avons une fonction f qui appelle la fonction g, en passant dans les classes wrapper pour chaque argument de f- g.
template <typename T1, typename T2, typename T3>
void f(T1 a, T2 b, T3 c)
{
g(Wrapper<T1>(a), Wrapper<T2>(b), Wrapper<T3>(c));
}
Fonction g est pas important, mais pourrait être par exemple une séquence de fonctions surchargées, chacun avec un nombre différent et le type de Wrapper des classes comme ses paramètres.
Est-il possible d'utiliser des modèles variadique pour appeler la méthode du modèle f avec un nombre variable d'arguments, en passant dans le même nombre d'arguments, mais plutôt avec leurs classes d'emballage en fonction g?
Toute aide très appréciée, Tony
Voulez-vous dire [quelque chose comme ça] (http://ideone.com/rc8rqc)? Pas sûr que j'ai compris la question. – WhozCraig