Dies funktioniert ...Verwenden decltype und std :: Funktion mit Lambda
auto x = 4;
typedef decltype(x) x_t;
x_t y = 5;
... so funktioniert, warum nicht?
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;};
... und wie würde ich lambda_t
manuell mit std :: Funktion deklarieren?
Sie können sicher deflambdas mit declltype so tippen. –
@R.MartinhoFernandes wirft die Frage auf, warum 'declltype (func)' nicht 'std :: function' anstelle von etwas unbrauchbarem Müll zurückgibt? –
learnvst
@learnvst: Warum sollte es? 'declltype' gibt den deklarierten Typ zurück, und ein Lambda ist * nicht * eine' std :: function'. Außerdem hat "std :: function" unter anderem dank der Art des Löschens Leistungseinbußen. – Xeo