Considerate Ho una dichiarazioni di funzioni come questi:Recuperare gli argomenti della funzione come una tupla in C++
void foo(int x, float y);
class X {
void anotherFoo(double a, int c);
};
Come posso ottenere una tupla che corrisponde gli argomenti della funzione? Nel caso di cui sopra sarebbe:
boost::tuple<int, float>
boost::tuple<X*, double, int>
o meglio ancora con il risultato tipo di elemento come 0a:
boost::tuple<void, int, float>
boost::tuple<void, X*, double, int>
so che boost::function_types::parameter_types
può fare esattamente questo. Tuttavia, sono interessato al principio di come viene implementato.
Vorrei usare una 'struct'. Qual è lo scopo/vantaggio dell'uso di tuple? – kol
@kol less codice boilerplate, meno rumore – daramarak
Vuoi dire che vuoi generare automaticamente il tipo di tupla in fase di compilazione o in fase di esecuzione, o se vuoi estrarre i parametri dal regs/stack, o da entrambi, o qualcos'altro? – Rup