Ceci est un suivi sur Comment puis-je obtenir les types d'arguments d'un pointeur de fonction dans une classe de modèle variadique?
J'ai cette structure pour accéder aux arguments d'un modèle variadique :
template
struct function_traits;
template
struct function_traits>
{
static const size_t nargs = sizeof...(Args);
typedef R result_type;
template
struct arg
{
typedef typename std::tuple_element>::type type;
};
};
Et j'accède au type d'un argument de Args avec
typedef function fun;
std::cout << std::is_same::template arg<0>::type>::value << std::endl;
Cependant, je voudrais itérer à travers les arguments pour pouvoir gérer un nombre arbitraire d'arguments. Ce qui suit ne fonctionne pas, mais pour illustrer ce que je veux :
for (int i = 0; i < typename function_traits::nargs ; i++){
std::cout << std::is_same::template arg::type>::value << std::endl;
}