id summary reporter owner description type status milestone component version severity resolution keywords cc 7080 make_constructor Does Not Initialize base_wrapper team@… Ralf W. Grosse-Kunstleve "When binding a shared_ptr to Python, we're using a custom allocator defined using make_constructor: {{{ class_< Controller, shared_ptr, boost::noncopyable >(""Controller"", no_init) .def(""__init__"", boost::python::make_constructor(&Controller::make)); }}} This works as expected except when classes are derived in Python. In those cases, get_override does not work, since m_self is NULL. If you use init<>() in the class_ constructor, instead of the make_constructor line, it works as expected. The bug is that make_constructor does not initialize the base_wrapper. I've tried a fix as follows, and it's now functional -- though I can't say if this is a good way to solve it. {{{ +++ make_constructor.hpp @@ -59,6 +59,7 @@ void* memory = holder::allocate(this->m_self, offsetof(instance_t, storage), sizeof(holder)); try { (new (memory) holder(x))->install(this->m_self); + python::detail::initialize_wrapper(this->m_self, get_pointer(x)); } catch(...) { holder::deallocate(this->m_self, memory); }}} It's also possible to fix this by partially specializing ""template struct install_holder;"" before boost::python is included." Bugs new To Be Determined python USE GITHUB Boost 1.51.0 Problem