4
我有一些C++代碼,可提供事件Python對象跟蹤一個對象的CPython的壽命。觀察家們不停地爲weak_ptr
S,所以他們沒有註銷。從C擴展
這適用於C++,但橋接弱指針和Python弱引用很麻煩(我還希望Python事件處理程序不會因訂閱而保持活動狀態,與C++代碼中相同)。爲了有一個活觀察者,一些需要有一個共享指針到它,而該對象是活的,所以它歸結爲具有在Python土地控制觀察者一個C++對象觀察者的壽命。
到目前爲止,我所提出的方法涉及大量的樣板和中間對象(例如爲一個類型創建另一個PyTypeObject,該類型保留一個C++觀察者和一個對Python觀察者的弱引用並將其設置爲成員Python的觀察者,這樣它就會死亡)。
的問題是,是否有任何明顯的方式做到這一點?