#include #include class BaseTrampoline : public lib::Base, public pybind11::trampoline_self_life_support { public: using lib::Base::Base; int get() const override { PYBIND11_OVERLOAD(int, lib::Base, get); } }; PYBIND11_MODULE(test_cross_module_rtti_bindings, m) { pybind11::classh(m, "Base") .def(pybind11::init()) .def_readwrite("a", &lib::Base::a) .def_readwrite("b", &lib::Base::b); m.def("get_foo", [](int a, int b) -> std::shared_ptr { return std::make_shared(a, b); }); }