Voglio creare un vettore/deque come contenitore di funzioni.Metti le funzioni in vettoriale ed esegui
Questo contenitore deve assumere funzioni diverse con argomenti diversi.
funzioni Esempio:
program_data::getInstance().function(int,std::string);
program_data::getInstance().foo(int);
program_data::getInstance().exam(int,std::string,double);
E potrebbe mostrare esempio di codice come mettere queste funzioni con argomenti per std :: vector/std :: deque e eseguire?
Penso che dovrei usare std :: function e std :: bind ma non so come supportare diverse funzioni con dimensioni di args differenti.
Con argomenti -> le mie funzioni (chiamate function
foo
exam
da program_data
) fare alcune azioni utilizzando argomenti.
Ad esempio: normalmente eseguo questa funzione:
program_data::getInstance().function(10,"halo");
e ora voglio mettere queste funzioni per std::vector // deque
ed eseguire con argomenti che ho messo con la funzione. Per esempio (se metto funzione sopra per vettore e utilizzare (pseudocodice) vector[0].run();
poi mio programma funzione run program_data::getInstance().function(int,std::string);
)
"con argomenti" - significa che si desidera creare qualcosa che, quando chiamato, ha lo stesso effetto di chiamare la funzione con gli argomenti specificati? –
Forse stai cercando espressioni lambda? https://stackoverflow.com/questions/7627098/what-is-a-lambda-expression-in-c11 – MrTux
I valori dei tuoi argomenti sono noti all'ora di enque? Il tipo di ritorno delle tue funzioni è sempre lo stesso? – Christophe