Bewährte Methode für den lokalen Variablenbereich in einem C ++ - Callback

8

Ich habe eine funktionierende C ++ - Callback-Funktion, die von einem Benutzer ausgelöst wird, der das Ereignis 'mouse down' ausführt. (Die IDE ist VS2010.)

Mit jedem Aufruf möchte ich eine einfache Zählvariable inkrementieren, die lokal für den Gültigkeitsbereich des Rückrufs ist. Einfach gesagt, was ist der beste Weg, dies zu tun?

Vielen Dank im Voraus für Ihre Meinungen oder Anweisungen.

    
Kevin Cain 12.05.2012, 17:03
quelle

1 Antwort

13

Ersetzen Sie Ihre Callback-Funktion durch einen Funktor - sie können den Status speichern. Ein Beispiel funktor:

%Vor%

Beachten Sie die Verwendung von shared_ptr im Funktor. Dies liegt daran, dass f eine lokale Kopie des Funktors besitzt (beachten Sie den Pass-by-Wert) und Sie möchten, dass diese Kopie int mit der Funktor, auf den Sie zugreifen können. Beachten Sie auch, dass f sein Argument nach Wert nehmen muss, da Sie alle callables und nicht nur Funktoren unterstützen wollen.

    
Stuart Golodetz 12.05.2012, 17:09
quelle

Tags und Links