// // shared_ptr // // An enhanced relative of scoped_ptr with reference counted copy semantics. // The object pointed to is deleted when the last shared_ptr pointing to it // is destroyed or reset. // // // This is highly hacked up version of boost::shared_ptr // We just need enough to get SWIG to "do the right thing" and // generate "Smart Pointer" code. // namespace boost { template class shared_ptr { public: shared_ptr() { } shared_ptr (T * p) { } T * operator-> () // never throws { return px; } private: T * px; // contained pointer int pn; }; // shared_ptr };