Disabling shared_ptr&, shared_ptr* tests when building with PYBIND11_USE_SMART_HOLDER_AS_DEFAULT for now, pending work on smart_holder_type_caster<shared_ptr>.

This commit is contained in:
Ralf W. Grosse-Kunstleve 2021-02-03 21:16:01 -08:00
parent 70eb4ea6e9
commit 3134dfe779

View File

@ -112,8 +112,10 @@ UserType TestPropRVP::sv2(1);
class NoneTester { public: int answer = 42; };
int none1(const NoneTester &obj) { return obj.answer; }
int none2(NoneTester *obj) { return obj ? obj->answer : -1; }
#ifndef PYBIND11_USE_SMART_HOLDER_AS_DEFAULT
int none3(std::shared_ptr<NoneTester> &obj) { return obj ? obj->answer : -1; }
int none4(std::shared_ptr<NoneTester> *obj) { return obj && *obj ? (*obj)->answer : -1; }
#endif
int none5(std::shared_ptr<NoneTester> obj) { return obj ? obj->answer : -1; }
struct StrIssue {
@ -329,13 +331,17 @@ TEST_SUBMODULE(methods_and_attributes, m) {
.def(py::init<>());
m.def("no_none1", &none1, py::arg{}.none(false));
m.def("no_none2", &none2, py::arg{}.none(false));
#ifndef PYBIND11_USE_SMART_HOLDER_AS_DEFAULT
m.def("no_none3", &none3, py::arg{}.none(false));
m.def("no_none4", &none4, py::arg{}.none(false));
#endif
m.def("no_none5", &none5, py::arg{}.none(false));
m.def("ok_none1", &none1);
m.def("ok_none2", &none2, py::arg{}.none(true));
#ifndef PYBIND11_USE_SMART_HOLDER_AS_DEFAULT
m.def("ok_none3", &none3);
m.def("ok_none4", &none4, py::arg{}.none(true));
#endif
m.def("ok_none5", &none5);
m.def("no_none_kwarg", &none2, "a"_a.none(false));