C ++ i currying

Mam kod:

<code>#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;
}
</code>

Ten kod działa poprawnie. Chcę jednak później wywołać drugą funkcję, taką jak:

<code>auto i = fn(2);

i(4); //error: 'i' cannot be used as a function
</code>

Czy jest jakiś sposób na wywołanie ostatniej funkcji później, a następnie powiązanie z pierwszym wywołaniem?

questionAnswers(3)

yourAnswerToTheQuestion