Hi all, I've been bashing my head against a wall for the past couple of days trying to figure this out. It's frustrating because it seems like it should be such a simple thing. I've also read through every archived message I can find relating to this topic, but just can't seem to pull it all together.
Here is a minimal example showing what I'm trying to do: --------------------------------------------------------------- C++: #include <boost/shared_ptr.hpp> class Bar {}; typedef boost::shared_ptr<Bar> BarPtr; BarPtr mFooInstance = BarPtr(new Bar()); BarPtr getBar() { return mBarInstance; } -------------------------------------------------------------- C++ / Python binding: #include <boost/python.hpp> using namespace boost::python; BOOST_PYTHON_MODULE(Foo) { class_<Bar, boost::noncopyable>("Bar", no_init); def("getBar", &getBar); register_ptr_to_python<BarPtr>(); } -------------------------------------------------------------- Python: import Foo bar1 = Foo.getBar() bar2 = Foo.getBar() assert bar1 == bar2 # Assert fails due to bar1 and bar2 having separate python objects All I would like to achieve is for bar1 and bar2 to point to the same python object, in the case where the object was created on the C++ side, such that I can add python attributes to such instances and have this state preserved. Note that I am using a global mFooInstance for simplicity, but in reality such object will be held as members or in containers. Thanks in advance for any help! _______________________________________________ Cplusplus-sig mailing list Cplusplus-sig@python.org http://mail.python.org/mailman/listinfo/cplusplus-sig