Wie kann ich ein C ++ - Lambda an einen C-Callback übergeben, der einen Funktionszeiger und einen Kontext erwartet?

Ich versuche, einen Rückruf in einer C-API zu registrieren, die das Standard-Funktionszeiger- + Kontextparadigma verwendet. So sieht die API aus:

void register_callback(void(*callback)(void *), void * context);

Ich würde wirklich gerne ein C ++ - Lambda als Rückruf registrieren. Außerdem möchte ich, dass das Lambda ein Lambda ist, das erfasste Variablen enthält (dh nicht in ein gerade zustandsloses Lambda konvertiert werden kann)std::function)

Welche Art von Adaptercode muss ich schreiben, um ein Lambda als Rückruf registrieren zu können?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage