Boost.Python を使用して C++ ライブラリをラップしています。
同じ Python インスタンス (オブジェクト ID による) が特定の C++ インスタンス (ポインター ID による) に対して常に返されるようにするにはどうすればよいですか? C++ クラスを拡張することはできませんが、役立つ場合はメンバー変数 (PyObject * や boost::python::handle<> など) を追加できます。Python インスタンスを C++ インスタンスにキャッシュし、新しいインスタンスを作成する代わりにキャッシュされたインスタンスを返すことができるはずだと考えています。ただし、必要なラッピング コードがわかりません。
ラップされるクラスの例:
class C {
public:
boost::python::handle<> wrapper_;
private:
C();
C(const C &);
~C();
};
誰でもアドバイスを提供できますか?