Ich verwende PPL und parallel_for-Syntax, um eine for-Schleife zu haben. In der Capture-Klausel habe ich 3 Variablen, eine davon ist ein Klassenmitglied. Aufgrund des Vorhandenseins eines Klassenmembers unter Variablen in der capture-Klausel liegt ein Kompilierungsfehler vor. Wenn ich jedoch dieses Klassenmitglied in lambda body habe, kompiliert es auch nicht, und der angegebene Fehler besagt, dass die Variable im umschließenden Bereich in der capture-Klausel enthalten sein sollte. Wie geht es weiter? Soll ich das variable Mitglied vorher in eine lokale Variable kopieren und in der capture-Klausel übergeben?
Hier ist der Code, mit formulaCommand das Klassenmitglied.
%Vor%Danke!
Sie müssen this
erfassen, um auf die Elementvariablen zuzugreifen (denken Sie daran, dass formulaCommand
äquivalent zu this->formulaCommand
ist).
(BTW, Sie sollten wahrscheinlich einen intelligenten Zeiger ( unique_ptr<MLEquationCommand>
) anstelle von% delete
-ing den rohen Zeiger command_
verwenden.)
Tags und Links c++ lambda parallel-processing ppl