Mam tę samą funkcję z tą różnicą, że będzie ona zwiększać lub zmniejszać. Chciałbym to uogólnić.Przekazywanie operacji zwiększania/zmniejszania do funkcji
template<typename O>
void f(int& i, O op){
op(i);
}
int main() {
int i;
f(i,operator++);
f(i,operator--);
return 0;
}
Jak mogę to ułatwić?
moją drugą opcją jest użycie funkcjonalnego std :: plus lub posiadanie dwóch funkcji, ale wolę to rozwiązanie, jeśli to możliwe. Dziękuję Ci.
Wystarczy napisać własny funktor. (Gdybyś mógł to zrobić, pisząc 'operator ++', nie byłoby potrzeby 'std :: plus' ...) –
Nie sądzę, że możesz to zrobić dla rodzimych typów. –
'f (i, [] (int & v) {++ v;});' – cdhowie