这工作功能...使用decltype和std ::与拉姆达
auto x = 4;
typedef decltype(x) x_t;
x_t y = 5;
...那么,为什么不呢?
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;};
...以及如何使用std :: function手动声明lambda_t
?
你当然可以用这样的decltype typedef lambda表达式。 –
@ R.MartinhoFernandes乞求问题为什么'decltype(func)'不返回'std :: function'而不是一些不可用的垃圾? –
learnvst
@learnvst:为什么要这样? 'decltype'返回声明的类型,而lambda则不是* std :: function'。另外,由于类型擦除,'std :: function'具有性能问题。 – Xeo