Sagen wir, ich habe eine Klasse:
%Vor%Und ich habe ein Lambda:
%Vor%Gibt es eine Möglichkeit, ein privates Mitglied / Methode in einem Lambda zu verwenden? - Es ist nicht notwendig, den Zeiger auf das Lambda zu übergeben - es kann ein Capture-by oder etwas anderes sein.
Alle vernünftigen Systeme sind willkommen.
Um ein Lambda zu einem Freund zu machen, müssen Sie sich mit einer Klasse oder einer Funktion vertraut machen, bei der das Lambda definiert ist. Hier ist ein komplettes Beispiel:
%Vor%mit std :: function benötigt zusätzliche Ressource, so dass ich freomode / method Funktion für den Zugriff auf private Mitglied empfohlen (Freund Funktion implizit inlined):
%Vor%EDIT: Ich persönlich mag std :: function, aber vergessen Sie nicht, std :: function benötigt immer zusätzliche Speicherressourcen und kann nicht inline sein. Wenn Sie also Ihre Quelle ohne std :: function implementieren können, Verwenden Sie nicht std :: function. Siehe Wie wird die std :: function implementiert? Auch Lambda to std :: function Konvertierungsleistung