C ++ i currying
Mam kod:
#include <iostream>
using namespace std;
auto fn = ([](int x){
return [x](int y) {
return x * y;
};
});
int main() {
int i = fn(2)(4); // 8
cout << i << endl;
return 0;
}
Ten kod działa poprawnie. Chcę jednak później wywołać drugą funkcję, taką jak:
auto i = fn(2);
i(4); //error: 'i' cannot be used as a function
Czy jest jakiś sposób na wywołanie ostatniej funkcji później, a następnie powiązanie z pierwszym wywołaniem?