This works ...
auto x = 4;
typedef decltype(x) x_t;
x_t y = 5;
... so why doesn't this?
int j = 4;
auto func = [&] (int i) { cout << "Hello: i=" << i << " j=" << j << endl;};
typedef decltype(func) lambda_t;
lambda_t func2 = [&] (int i) { cout << "Bye: i=" << i << " j=" << j << endl;};
... and how would I declare lambda_t
manually using std::function?
... so why doesn't this [work]?
Because each lexical instance of a lambda has a different type. It does not matter if the same characters are used.
.. and how would I declare lambda_t manually using std::function?
The lambda takes an int argument and does not return anything... Therefore:
typedef std::function<void(int)> lambda_t;
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With