Ich übergebe derzeit einen C++ - Zeiger auf eine Python-Callback-Funktion mit der boost::python::call
-Funktion. Das funktioniert gut, aber wenn ich den Zeiger im C++ - Code später nicht lösche, führe ich ein Speicherleck ein.Kann boost :: python den Besitz eines Objekts an eine Python-Callback-Funktion übergeben?
Ich würde gerne den Zeiger auf den Rückruf übergeben und Python Garbage Collector behandeln die Lebensdauer des Objekts. Wenn ich jetzt das an den Callback übergebene Objekt speichern möchte, muss ich eine tiefe Kopie machen.
Ich habe here gesehen, dass diese Art von Sache mit Rückgabewerten der umschlossenen C++ Funktion mit return_value_policy<manage_new_object>
möglich ist. Ist es möglich, etwas ähnliches mit den Argumenten zu boost::python::call
zu tun?