#include #include #include #include using namespace boost; class A { public: int i; A(int _i) : i(_i) {} }; weak_ptr wpa; void output(shared_ptr& ptr) { wpa = ptr; std::cout << "output: " << ptr->i << std::endl; } void output_weak() { shared_ptr spa; spa = wpa.lock(); if (!spa) std::cout << "output: none " << std::endl; else std::cout << "output: " << spa->i << std::endl; } BOOST_PYTHON_MODULE(tester) { python::class_ >("A", python::init()) .def_readwrite("i", &A::i) ; python::def("output", output); python::def("output_weak", output_weak); }