All pastes #74007 Raw Edit

shared_ptr passing

public cpp v1 · immutable
#74007 ·published 2006-06-28 15:21 UTC
rendered paste body
#include <boost/python.hpp>#include <boost/shared_ptr.hpp>#include <boost/weak_ptr.hpp>#include <iostream>using namespace boost;class A {  public:    int i;    A(int _i) : i(_i) {}};weak_ptr<A> wpa;void output(shared_ptr<A>& ptr) {  wpa = ptr;  std::cout << "output: " << ptr->i << std::endl;}void output_weak() {  shared_ptr<A> 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, shared_ptr<A> >("A", python::init<int>())    .def_readwrite("i", &A::i)    ;  python::def("output", output);  python::def("output_weak", output_weak);}