Sto cercando un modo in C++ per estrarre il tipo di ritorno di una funzione (senza chiamarla). Presumo che questo richiederà un po 'di magia del modello.Estrarre il tipo di ritorno di una funzione senza chiamarla (utilizzando i modelli?)
float Foo();
int Bar();
magic_template<Foo>::type var1; // Here 'var1' should be of type 'float'
magic_template<Bar>::type var2; // and 'var2' should be of type 'int'
Attualmente sto studiando come potrebbe essere implementato magic_template
, ma non ho trovato finora una soluzione.
Qualche idea?
I tipi di ritorno delle funzioni sono covarianti, un iceberg che affonderà quel Titanic. –
Hmm sì, questo sembra. Per dare un esempio a tutti funziona così: boost :: function_traits :: type> :: result_type var1; var1 = 3,14f; Il mio unico problema ora è come hai detto, ho bisogno del tipo dell'intera funzione per passare a queste utility di potenziamento. –
pauldoo
@nobugz: Non capisco davvero il tuo commento, puoi spiegarlo ulteriormente? –