Lassen Sie uns sagen, ich habe eine Klasse:Wie mache ich den Lambda zu einem Klassenkameraden?
class A {
int a;
};
Und ich habe eine Lambda:
auto function = [](A* a) {
a->a; // <== gives an error in this line.
};
function(new A);
Gibt es eine Möglichkeit ein eigenes Mitglied/Verfahren in einem Lambda zu benutzen? - Es ist nicht notwendig, den Zeiger an das Lambda zu übergeben - es kann ein Capture-By oder etwas anderes sein.
Alle angemessenen Schemata sind willkommen.
Warum nicht einfach den 'std :: function' Typ verwenden? http://en.cppreference.com/w/cpp/utility/functional/function – user2485710
Könnten Sie einen Anwendungsfall dafür geben? Es gibt viele mögliche Wege, wie das Lambda Zugang zu den privaten Mitgliedern erhalten könnte, aber es ist nicht klar, welcher Ansatz akzeptabel ist, ohne einen Anwendungsfall zu kennen. –
@ user2485710 Wie würde mir der 'std :: function' -Typ beim Zugriff auf private Mitglieder in Lambdas helfen? –