Ho la stessa funzione con la sola differenza che aumenterà o diminuirà. Mi piacerebbe generalizzare da quello.Passaggio di un operatore di incremento/decremento a una funzione
template<typename O>
void f(int& i, O op){
op(i);
}
int main() {
int i;
f(i,operator++);
f(i,operator--);
return 0;
}
Come posso fare questo lavoro?
la mia altra opzione è utilizzare std :: plus funzionale o avere due funzioni ma preferirei questa soluzione se possibile. Grazie.
Basta scrivere il proprio funtore. (Se potessi farlo scrivendo semplicemente 'operator ++', non ci sarebbe bisogno di 'std :: plus' ...) –
Non penso che tu possa farlo per i tipi nativi. –
'f (i, [] (int & v) {++ v;});' – cdhowie