On Friday, May 18, 2012 at 6:00 AM, cplusplus-sig-request@python.org wrote:
Send Cplusplus-sig mailing list submissions toTo subscribe or unsubscribe via the World Wide Web, visitor, via email, send a message with subject or body 'help' toYou can reach the person managing the list atWhen replying, please edit your Subject line so it is more specificthan "Re: Contents of Cplusplus-sig digest..."Today's Topics:1. Segmentation Fault with Boost.Python and Inheritance(Gabe Rives-Corbett)2. Re: Segmentation Fault with Boost.Python and Inheritance(Jonas Wielicki)----------------------------------------------------------------------Message: 1Date: Thu, 17 May 2012 17:42:52 -0400From: Gabe Rives-Corbett <gabe@gaberivescorbett.com>Subject: [C++-sig] Segmentation Fault with Boost.Python andInheritanceMessage-ID: <61DAADFBCA6D4C468EF8216B42EBAE48@gaberivescorbett.com>Content-Type: text/plain; charset="utf-8"Hello,I'm getting a seg fault when trying to call a virtual method on a base class from python. Code is below:#include <memory>namespace boost {template<class T> const T* get_pointer(const std::shared_ptr<T>& ptr){return ptr.get();}template<class T> T* get_pointer(std::shared_ptr<T>& ptr){return ptr.get();}}#include <Python.h>#include <boost/python.hpp>namespace bp = boost::python;class MyBase{public:MyBase(){}virtual ~MyBase(){}virtual void baseTest() { printf("base test\n"); }};class MyDerived : public MyBase{public:MyDerived() {}virtual ~MyDerived(){}void derivedTest() { printf("derived test\n"); }};BOOST_PYTHON_MODULE(PythonTest){bp::class_<MyBase, std::shared_ptr<MyBase>>("MyBase").def("baseTest", &MyBase::baseTest);bp::class_<MyDerived, bp::bases<MyBase>, std::shared_ptr<MyDerived>>("MyDerived").def("derivedTest", &MyDerived::derivedTest);bp::implicitly_convertible<std::shared_ptr<MyDerived>, std::shared_ptr<MyBase>>();}Does it have to do with using std::shared_ptr for storage? If so is there a way around this? Any help is appreciated.--Gabe Rives-Corbett-------------- next part --------------An HTML attachment was scrubbed...URL: <http://mail.python.org/pipermail/cplusplus-sig/attachments/20120517/c42e81a8/attachment-0001.html>------------------------------Message: 2Date: Fri, 18 May 2012 10:41:03 +0200From: Jonas Wielicki <j.wielicki@sotecware.net>Subject: Re: [C++-sig] Segmentation Fault with Boost.Python andInheritanceMessage-ID: <4FB60B1F.2050708@sotecware.net>Content-Type: text/plain; charset=ISO-8859-1On 17/05/12 23:42, Gabe Rives-Corbett wrote:I'm getting a seg fault when trying to call a virtual method on a base class from python.I had a similar problem a few days ago. Which g++ version are you using?I had problems with 4.7.0 (redhat) while 4.6.3 (redhat) was working fine.--Jonas------------------------------_______________________________________________Cplusplus-sig mailing listEnd of Cplusplus-sig Digest, Vol 44, Issue 17*********************************************