Comment puis-je obtenir les types d'argument un pointeur de fonction dans un variadic template de classe?

C'est un suivi de ce problème: Générique foncteur pour les fonctions avec toute la liste d'arguments

J'ai ce foncteur classe (code complet voir le lien ci-dessus):

template<typename... ARGS>
class Foo
{
    std::function<void(ARGS...)> m_f;
  public:
    Foo( std::function<void(ARGS...)> f ) : m_f(f) {}
    void operator()(ARGS... args) const { m_f(args...); }
};

Dans l'opérateur() je peux accéder à la args... facilement avec un récursif "peeling" de la fonction, comme décrit ici http://www2.research.att.com/~bs/C++0xFAQ.html#variadic-modèles

Mon problème est: je veux accéder aux types des arguments de f, c'est à dire ARGS..., dans le constructeur. Évidemment, je ne peux pas accéder à des valeurs, car il n'y a pas loin, mais l'argument de type liste est en quelque sorte enterré dans f, n'est-ce pas?

InformationsquelleAutor steffen | 2012-01-30