| 58 | // clang-format on |
| 59 | |
| 60 | TEST_SUBMODULE(class_sh_inheritance, m) { |
| 61 | py::classh<base>(m, "base"); |
| 62 | py::classh<drvd, base>(m, "drvd"); |
| 63 | |
| 64 | auto rvto = py::return_value_policy::take_ownership; |
| 65 | |
| 66 | m.def("rtrn_mptr_drvd", rtrn_mptr_drvd, rvto); |
| 67 | m.def("rtrn_mptr_drvd_up_cast", rtrn_mptr_drvd_up_cast, rvto); |
| 68 | m.def("pass_cptr_base", pass_cptr_base); |
| 69 | m.def("pass_cptr_drvd", pass_cptr_drvd); |
| 70 | |
| 71 | m.def("rtrn_shmp_drvd", rtrn_shmp_drvd); |
| 72 | m.def("rtrn_shmp_drvd_up_cast", rtrn_shmp_drvd_up_cast); |
| 73 | m.def("pass_shcp_base", pass_shcp_base); |
| 74 | m.def("pass_shcp_drvd", pass_shcp_drvd); |
| 75 | |
| 76 | // __init__ needed for Python inheritance. |
| 77 | py::classh<base1>(m, "base1").def(py::init<>()); |
| 78 | py::classh<base2>(m, "base2").def(py::init<>()); |
| 79 | py::classh<drvd2, base1, base2>(m, "drvd2"); |
| 80 | |
| 81 | m.def("rtrn_mptr_drvd2", rtrn_mptr_drvd2, rvto); |
| 82 | m.def("rtrn_mptr_drvd2_up_cast1", rtrn_mptr_drvd2_up_cast1, rvto); |
| 83 | m.def("rtrn_mptr_drvd2_up_cast2", rtrn_mptr_drvd2_up_cast2, rvto); |
| 84 | m.def("pass_cptr_base1", pass_cptr_base1); |
| 85 | m.def("pass_cptr_base2", pass_cptr_base2); |
| 86 | m.def("pass_cptr_drvd2", pass_cptr_drvd2); |
| 87 | } |
| 88 | |
| 89 | } // namespace class_sh_inheritance |
| 90 | } // namespace pybind11_tests |
nothing calls this directly
no outgoing calls
no test coverage detected