diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d77071aba..d1d0587b2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -68,6 +68,8 @@ jobs: # Extra ubuntu latest job - runs-on: ubuntu-latest python: '3.11' + # Exercise PYBIND11_USE_SMART_HOLDER_AS_DEFAULT + # with recent (or ideally latest) released Python version. - runs-on: ubuntu-latest python: '3.12' args: > @@ -80,6 +82,20 @@ jobs: python: '3.12' args: > -DCMAKE_CXX_FLAGS="/DPYBIND11_USE_SMART_HOLDER_AS_DEFAULT /GR /EHsc" + # Exercise PYBIND11_SMART_HOLDER_DISABLE + # with recent (or ideally latest) released Python version. + - runs-on: ubuntu-latest + python: '3.12' + args: > + -DCMAKE_CXX_FLAGS="-DPYBIND11_SMART_HOLDER_DISABLE" + - runs-on: macos-13 + python: '3.12' + args: > + -DCMAKE_CXX_FLAGS="-DPYBIND11_SMART_HOLDER_DISABLE" + - runs-on: windows-2022 + python: '3.12' + args: > + -DCMAKE_CXX_FLAGS="/DPYBIND11_SMART_HOLDER_DISABLE /GR /EHsc" name: "🐍 ${{ matrix.python }} • ${{ matrix.runs-on }} • x64 ${{ matrix.args }}" runs-on: ${{ matrix.runs-on }} diff --git a/include/pybind11/cast.h b/include/pybind11/cast.h index 8ecc20f25..9cc2dc684 100644 --- a/include/pybind11/cast.h +++ b/include/pybind11/cast.h @@ -836,7 +836,7 @@ protected: holder_type holder; }; -#ifdef PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT +#ifdef PYBIND11_SMART_HOLDER_ENABLED template struct copyable_holder_caster_shared_ptr_with_smart_holder_support_enabled : std::true_type {}; @@ -968,7 +968,7 @@ protected: std::shared_ptr shared_ptr_storage; }; -#endif // PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT +#endif // PYBIND11_SMART_HOLDER_ENABLED /// Specialize for the common std::shared_ptr, so users don't need to template @@ -990,7 +990,7 @@ struct move_only_holder_caster { static constexpr auto name = type_caster_base::name; }; -#ifdef PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT +#ifdef PYBIND11_SMART_HOLDER_ENABLED template struct move_only_holder_caster_unique_ptr_with_smart_holder_support_enabled : std::true_type {}; @@ -1129,7 +1129,7 @@ public: std::shared_ptr> unique_ptr_storage; }; -#endif // PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT +#endif // PYBIND11_SMART_HOLDER_ENABLED template class type_caster> @@ -1167,7 +1167,7 @@ struct is_holder_type template struct is_holder_type> : std::true_type {}; -#ifdef PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT +#ifdef PYBIND11_SMART_HOLDER_ENABLED template struct is_holder_type : std::true_type {}; #endif diff --git a/include/pybind11/detail/init.h b/include/pybind11/detail/init.h index ae2e146b8..cfd88043b 100644 --- a/include/pybind11/detail/init.h +++ b/include/pybind11/detail/init.h @@ -198,7 +198,7 @@ void construct(value_and_holder &v_h, Alias &&result, bool) { v_h.value_ptr() = new Alias(std::move(result)); } -#ifdef PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT +#ifdef PYBIND11_SMART_HOLDER_ENABLED template smart_holder init_smart_holder_from_unique_ptr(std::unique_ptr &&unq_ptr, @@ -268,7 +268,7 @@ void construct(value_and_holder &v_h, v_h.type->init_instance(v_h.inst, &smhldr); } -#endif // PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT +#endif // PYBIND11_SMART_HOLDER_ENABLED // Implementing class for py::init<...>() template diff --git a/include/pybind11/detail/internals.h b/include/pybind11/detail/internals.h index 09c521a66..fd091010a 100644 --- a/include/pybind11/detail/internals.h +++ b/include/pybind11/detail/internals.h @@ -252,6 +252,11 @@ enum class holder_enum_t : uint8_t { #endif +#if defined(PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT) \ + && !defined(PYBIND11_SMART_HOLDER_DISABLE) +# define PYBIND11_SMART_HOLDER_ENABLED +#endif + /// Additional type information which does not fit into the PyTypeObject. /// Changes to this struct also require bumping `PYBIND11_INTERNALS_VERSION`. struct type_info { diff --git a/include/pybind11/detail/type_caster_base.h b/include/pybind11/detail/type_caster_base.h index 7cdeabdcc..baaba2dd2 100644 --- a/include/pybind11/detail/type_caster_base.h +++ b/include/pybind11/detail/type_caster_base.h @@ -473,7 +473,7 @@ inline PyThreadState *get_thread_state_unchecked() { void keep_alive_impl(handle nurse, handle patient); inline PyObject *make_new_instance(PyTypeObject *type); -#ifdef PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT +#ifdef PYBIND11_SMART_HOLDER_ENABLED // PYBIND11:REMINDER: Needs refactoring of existing pybind11 code. inline bool deregister_instance(instance *self, void *valptr, const type_info *tinfo); @@ -830,7 +830,7 @@ struct load_helper : value_and_holder_helper { PYBIND11_NAMESPACE_END(smart_holder_type_caster_support) -#endif // PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT +#endif // PYBIND11_SMART_HOLDER_ENABLED class type_caster_generic { public: @@ -936,7 +936,7 @@ public: // Base methods for generic caster; there are overridden in copyable_holder_caster void load_value(value_and_holder &&v_h) { -#ifdef PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT +#ifdef PYBIND11_SMART_HOLDER_ENABLED if (typeinfo->holder_enum_v == detail::holder_enum_t::smart_holder) { smart_holder_type_caster_support::value_and_holder_helper v_h_helper; v_h_helper.loaded_v_h = v_h; diff --git a/include/pybind11/detail/using_smart_holder.h b/include/pybind11/detail/using_smart_holder.h index 826e6b2c6..b2d2606af 100644 --- a/include/pybind11/detail/using_smart_holder.h +++ b/include/pybind11/detail/using_smart_holder.h @@ -9,19 +9,19 @@ #include -#ifdef PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT +#ifdef PYBIND11_SMART_HOLDER_ENABLED # include "struct_smart_holder.h" #endif PYBIND11_NAMESPACE_BEGIN(PYBIND11_NAMESPACE) -#ifdef PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT +#ifdef PYBIND11_SMART_HOLDER_ENABLED using pybindit::memory::smart_holder; #endif PYBIND11_NAMESPACE_BEGIN(detail) -#ifdef PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT +#ifdef PYBIND11_SMART_HOLDER_ENABLED template using is_smart_holder = std::is_same; #else diff --git a/include/pybind11/pybind11.h b/include/pybind11/pybind11.h index 9f356828b..8f574f3d7 100644 --- a/include/pybind11/pybind11.h +++ b/include/pybind11/pybind11.h @@ -1631,7 +1631,7 @@ PYBIND11_NAMESPACE_END(detail) template struct property_cpp_function : detail::property_cpp_function_classic {}; -#ifdef PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT +#ifdef PYBIND11_SMART_HOLDER_ENABLED PYBIND11_NAMESPACE_BEGIN(detail) @@ -1810,10 +1810,9 @@ struct property_cpp_function< detail::both_t_and_d_use_type_caster_base>::value>> : detail::property_cpp_function_sh_unique_ptr_member {}; -#endif // PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT +#endif // PYBIND11_SMART_HOLDER_ENABLED -#if defined(PYBIND11_USE_SMART_HOLDER_AS_DEFAULT) \ - && defined(PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT) +#if defined(PYBIND11_USE_SMART_HOLDER_AS_DEFAULT) && defined(PYBIND11_SMART_HOLDER_ENABLED) // NOTE: THIS IS MEANT FOR STRESS-TESTING ONLY! // As of PR #5257, for production use, there is no longer a strong reason to make // smart_holder the default holder: @@ -1881,7 +1880,7 @@ public: // A more fitting name would be uses_unique_ptr_holder. record.default_holder = detail::is_instantiation::value; -#ifdef PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT +#ifdef PYBIND11_SMART_HOLDER_ENABLED if (detail::is_instantiation::value) { record.holder_enum_v = detail::holder_enum_t::std_unique_ptr; } else if (detail::is_instantiation::value) { @@ -2226,7 +2225,7 @@ private: init_holder(inst, v_h, (const holder_type *) holder_ptr, v_h.value_ptr()); } -#ifdef PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT +#ifdef PYBIND11_SMART_HOLDER_ENABLED template static bool try_initialization_using_shared_from_this(holder_type *, WrappedType *, ...) { @@ -2287,7 +2286,7 @@ private: v_h.set_holder_constructed(); } -#endif // PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT +#endif // PYBIND11_SMART_HOLDER_ENABLED /// Deallocates an instance; via holder, if constructed; otherwise via operator delete. static void dealloc(detail::value_and_holder &v_h) { @@ -2329,7 +2328,7 @@ private: } }; -#ifdef PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT +#ifdef PYBIND11_SMART_HOLDER_ENABLED // Supports easier switching between py::class_ and py::class_: // users can simply replace the `_` in `class_` with `h` or vice versa. diff --git a/include/pybind11/trampoline_self_life_support.h b/include/pybind11/trampoline_self_life_support.h index a30ffda3b..d988e75a3 100644 --- a/include/pybind11/trampoline_self_life_support.h +++ b/include/pybind11/trampoline_self_life_support.h @@ -6,7 +6,7 @@ #include "detail/internals.h" -#ifdef PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT +#ifdef PYBIND11_SMART_HOLDER_ENABLED # include "detail/common.h" # include "detail/using_smart_holder.h" @@ -63,4 +63,4 @@ struct trampoline_self_life_support { PYBIND11_NAMESPACE_END(PYBIND11_NAMESPACE) -#endif // PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT +#endif // PYBIND11_SMART_HOLDER_ENABLED diff --git a/tests/test_class.cpp b/tests/test_class.cpp index d15dc3914..f03b8c78e 100644 --- a/tests/test_class.cpp +++ b/tests/test_class.cpp @@ -93,7 +93,7 @@ TEST_SUBMODULE(class_, m) { struct ToBeHeldByUniquePtr {}; py::class_>(m, "ToBeHeldByUniquePtr") .def(py::init<>()); -#ifdef PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT +#ifdef PYBIND11_SMART_HOLDER_ENABLED m.def("pass_unique_ptr", [](std::unique_ptr &&) {}); #else m.attr("pass_unique_ptr") = py::none(); diff --git a/tests/test_class_sh_basic.cpp b/tests/test_class_sh_basic.cpp index ac19a750b..1d23cd62e 100644 --- a/tests/test_class_sh_basic.cpp +++ b/tests/test_class_sh_basic.cpp @@ -156,8 +156,8 @@ namespace pybind11_tests { namespace class_sh_basic { TEST_SUBMODULE(class_sh_basic, m) { - m.attr("defined_PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT") = -#ifndef PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT + m.attr("defined_PYBIND11_SMART_HOLDER_ENABLED") = +#ifndef PYBIND11_SMART_HOLDER_ENABLED false; #else true; @@ -260,7 +260,7 @@ TEST_SUBMODULE(class_sh_basic, m) { []() { return CastUnusualOpRefConstRef(LocalUnusualOpRef()); }); m.def("CallCastUnusualOpRefMovable", []() { return CastUnusualOpRefMovable(LocalUnusualOpRef()); }); -#endif // PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT +#endif // PYBIND11_SMART_HOLDER_ENABLED } } // namespace class_sh_basic diff --git a/tests/test_class_sh_basic.py b/tests/test_class_sh_basic.py index 7db7d31b7..74a4e4075 100644 --- a/tests/test_class_sh_basic.py +++ b/tests/test_class_sh_basic.py @@ -7,7 +7,7 @@ import pytest from pybind11_tests import class_sh_basic as m -if not m.defined_PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT: +if not m.defined_PYBIND11_SMART_HOLDER_ENABLED: pytest.skip("smart_holder not available.", allow_module_level=True) diff --git a/tests/test_class_sh_disowning.cpp b/tests/test_class_sh_disowning.cpp index 0474ca1d5..1c88bf071 100644 --- a/tests/test_class_sh_disowning.cpp +++ b/tests/test_class_sh_disowning.cpp @@ -32,8 +32,8 @@ PYBIND11_SMART_HOLDER_TYPE_CASTERS(pybind11_tests::class_sh_disowning::Atype<1>) PYBIND11_SMART_HOLDER_TYPE_CASTERS(pybind11_tests::class_sh_disowning::Atype<2>) TEST_SUBMODULE(class_sh_disowning, m) { - m.attr("defined_PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT") = -#ifndef PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT + m.attr("defined_PYBIND11_SMART_HOLDER_ENABLED") = +#ifndef PYBIND11_SMART_HOLDER_ENABLED false; #else true; @@ -49,5 +49,5 @@ TEST_SUBMODULE(class_sh_disowning, m) { m.def("overloaded", (int (*)(std::unique_ptr>, int)) & overloaded); m.def("overloaded", (int (*)(std::unique_ptr>, int)) & overloaded); -#endif // PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT +#endif // PYBIND11_SMART_HOLDER_ENABLED } diff --git a/tests/test_class_sh_disowning.py b/tests/test_class_sh_disowning.py index 5e2918e0e..b23a68515 100644 --- a/tests/test_class_sh_disowning.py +++ b/tests/test_class_sh_disowning.py @@ -4,7 +4,7 @@ import pytest from pybind11_tests import class_sh_disowning as m -if not m.defined_PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT: +if not m.defined_PYBIND11_SMART_HOLDER_ENABLED: pytest.skip("smart_holder not available.", allow_module_level=True) diff --git a/tests/test_class_sh_disowning_mi.cpp b/tests/test_class_sh_disowning_mi.cpp index c18529b22..662292758 100644 --- a/tests/test_class_sh_disowning_mi.cpp +++ b/tests/test_class_sh_disowning_mi.cpp @@ -57,8 +57,8 @@ PYBIND11_SMART_HOLDER_TYPE_CASTERS(pybind11_tests::class_sh_disowning_mi::Base1) PYBIND11_SMART_HOLDER_TYPE_CASTERS(pybind11_tests::class_sh_disowning_mi::Base2) TEST_SUBMODULE(class_sh_disowning_mi, m) { - m.attr("defined_PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT") = -#ifndef PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT + m.attr("defined_PYBIND11_SMART_HOLDER_ENABLED") = +#ifndef PYBIND11_SMART_HOLDER_ENABLED false; #else true; @@ -98,5 +98,5 @@ TEST_SUBMODULE(class_sh_disowning_mi, m) { py::classh(m, "Base2").def(py::init()).def("bar", &Base2::bar); m.def("disown_base1", disown_base1); m.def("disown_base2", disown_base2); -#endif // PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT +#endif // PYBIND11_SMART_HOLDER_ENABLED } diff --git a/tests/test_class_sh_disowning_mi.py b/tests/test_class_sh_disowning_mi.py index 238a76f2a..7b5261242 100644 --- a/tests/test_class_sh_disowning_mi.py +++ b/tests/test_class_sh_disowning_mi.py @@ -5,7 +5,7 @@ import pytest import env # noqa: F401 from pybind11_tests import class_sh_disowning_mi as m -if not m.defined_PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT: +if not m.defined_PYBIND11_SMART_HOLDER_ENABLED: pytest.skip("smart_holder not available.", allow_module_level=True) diff --git a/tests/test_class_sh_factory_constructors.cpp b/tests/test_class_sh_factory_constructors.cpp index 1e40ed96f..f4c0c1d5c 100644 --- a/tests/test_class_sh_factory_constructors.cpp +++ b/tests/test_class_sh_factory_constructors.cpp @@ -87,8 +87,8 @@ PYBIND11_SMART_HOLDER_TYPE_CASTERS(pybind11_tests::class_sh_factory_constructors PYBIND11_SMART_HOLDER_TYPE_CASTERS(pybind11_tests::class_sh_factory_constructors::with_alias) TEST_SUBMODULE(class_sh_factory_constructors, m) { - m.attr("defined_PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT") = -#ifndef PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT + m.attr("defined_PYBIND11_SMART_HOLDER_ENABLED") = +#ifndef PYBIND11_SMART_HOLDER_ENABLED false; #else true; @@ -183,5 +183,5 @@ TEST_SUBMODULE(class_sh_factory_constructors, m) { [](int, int, int, int, int) { return std::make_shared(); // Invalid alias factory. })); -#endif // PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT +#endif // PYBIND11_SMART_HOLDER_ENABLED } diff --git a/tests/test_class_sh_factory_constructors.py b/tests/test_class_sh_factory_constructors.py index 0ea930120..149a33401 100644 --- a/tests/test_class_sh_factory_constructors.py +++ b/tests/test_class_sh_factory_constructors.py @@ -4,7 +4,7 @@ import pytest from pybind11_tests import class_sh_factory_constructors as m -if not m.defined_PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT: +if not m.defined_PYBIND11_SMART_HOLDER_ENABLED: pytest.skip("smart_holder not available.", allow_module_level=True) diff --git a/tests/test_class_sh_inheritance.cpp b/tests/test_class_sh_inheritance.cpp index ebcca2c08..86ecea9be 100644 --- a/tests/test_class_sh_inheritance.cpp +++ b/tests/test_class_sh_inheritance.cpp @@ -73,8 +73,8 @@ namespace pybind11_tests { namespace class_sh_inheritance { TEST_SUBMODULE(class_sh_inheritance, m) { - m.attr("defined_PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT") = -#ifndef PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT + m.attr("defined_PYBIND11_SMART_HOLDER_ENABLED") = +#ifndef PYBIND11_SMART_HOLDER_ENABLED false; #else true; @@ -105,7 +105,7 @@ TEST_SUBMODULE(class_sh_inheritance, m) { m.def("pass_cptr_base1", pass_cptr_base1); m.def("pass_cptr_base2", pass_cptr_base2); m.def("pass_cptr_drvd2", pass_cptr_drvd2); -#endif // PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT +#endif // PYBIND11_SMART_HOLDER_ENABLED } } // namespace class_sh_inheritance diff --git a/tests/test_class_sh_inheritance.py b/tests/test_class_sh_inheritance.py index 2b681aa84..4f8c0e698 100644 --- a/tests/test_class_sh_inheritance.py +++ b/tests/test_class_sh_inheritance.py @@ -4,7 +4,7 @@ import pytest from pybind11_tests import class_sh_inheritance as m -if not m.defined_PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT: +if not m.defined_PYBIND11_SMART_HOLDER_ENABLED: pytest.skip("smart_holder not available.", allow_module_level=True) diff --git a/tests/test_class_sh_mi_thunks.cpp b/tests/test_class_sh_mi_thunks.cpp index edf847269..2630ab0dc 100644 --- a/tests/test_class_sh_mi_thunks.cpp +++ b/tests/test_class_sh_mi_thunks.cpp @@ -40,8 +40,8 @@ PYBIND11_SMART_HOLDER_TYPE_CASTERS(test_class_sh_mi_thunks::Base1) PYBIND11_SMART_HOLDER_TYPE_CASTERS(test_class_sh_mi_thunks::Derived) TEST_SUBMODULE(class_sh_mi_thunks, m) { - m.attr("defined_PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT") = -#ifndef PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT + m.attr("defined_PYBIND11_SMART_HOLDER_ENABLED") = +#ifndef PYBIND11_SMART_HOLDER_ENABLED false; #else true; @@ -103,5 +103,5 @@ TEST_SUBMODULE(class_sh_mi_thunks, m) { } return obj_der->vec.size(); }); -#endif // PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT +#endif // PYBIND11_SMART_HOLDER_ENABLED } diff --git a/tests/test_class_sh_mi_thunks.py b/tests/test_class_sh_mi_thunks.py index 65983b764..af3971bba 100644 --- a/tests/test_class_sh_mi_thunks.py +++ b/tests/test_class_sh_mi_thunks.py @@ -4,7 +4,7 @@ import pytest from pybind11_tests import class_sh_mi_thunks as m -if not m.defined_PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT: +if not m.defined_PYBIND11_SMART_HOLDER_ENABLED: pytest.skip("smart_holder not available.", allow_module_level=True) diff --git a/tests/test_class_sh_property.cpp b/tests/test_class_sh_property.cpp index cb8cd21ab..22a1f6950 100644 --- a/tests/test_class_sh_property.cpp +++ b/tests/test_class_sh_property.cpp @@ -58,8 +58,8 @@ PYBIND11_SMART_HOLDER_TYPE_CASTERS(test_class_sh_property::WithCharArrayMember) PYBIND11_SMART_HOLDER_TYPE_CASTERS(test_class_sh_property::WithConstCharPtrMember) TEST_SUBMODULE(class_sh_property, m) { - m.attr("defined_PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT") = -#ifndef PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT + m.attr("defined_PYBIND11_SMART_HOLDER_ENABLED") = +#ifndef PYBIND11_SMART_HOLDER_ENABLED false; #else true; @@ -109,5 +109,5 @@ TEST_SUBMODULE(class_sh_property, m) { py::classh(m, "WithConstCharPtrMember") .def(py::init<>()) .def_readonly("const_char_ptr_member", &WithConstCharPtrMember::const_char_ptr_member); -#endif // PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT +#endif // PYBIND11_SMART_HOLDER_ENABLED } diff --git a/tests/test_class_sh_property.py b/tests/test_class_sh_property.py index b9d402135..6b288650b 100644 --- a/tests/test_class_sh_property.py +++ b/tests/test_class_sh_property.py @@ -7,7 +7,7 @@ import pytest import env # noqa: F401 from pybind11_tests import class_sh_property as m -if not m.defined_PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT: +if not m.defined_PYBIND11_SMART_HOLDER_ENABLED: pytest.skip("smart_holder not available.", allow_module_level=True) diff --git a/tests/test_class_sh_property_non_owning.cpp b/tests/test_class_sh_property_non_owning.cpp index e5f24bd78..87b84334f 100644 --- a/tests/test_class_sh_property_non_owning.cpp +++ b/tests/test_class_sh_property_non_owning.cpp @@ -51,8 +51,8 @@ PYBIND11_SMART_HOLDER_TYPE_CASTERS(DataField) PYBIND11_SMART_HOLDER_TYPE_CASTERS(DataFieldsHolder) TEST_SUBMODULE(class_sh_property_non_owning, m) { - m.attr("defined_PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT") = -#ifndef PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT + m.attr("defined_PYBIND11_SMART_HOLDER_ENABLED") = +#ifndef PYBIND11_SMART_HOLDER_ENABLED false; #else true; @@ -71,5 +71,5 @@ TEST_SUBMODULE(class_sh_property_non_owning, m) { py::classh(m, "DataFieldsHolder") .def(py::init()) .def("vec_at", &DataFieldsHolder::vec_at, py::return_value_policy::reference_internal); -#endif // PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT +#endif // PYBIND11_SMART_HOLDER_ENABLED } diff --git a/tests/test_class_sh_property_non_owning.py b/tests/test_class_sh_property_non_owning.py index 163681fa9..b977e75b3 100644 --- a/tests/test_class_sh_property_non_owning.py +++ b/tests/test_class_sh_property_non_owning.py @@ -4,7 +4,7 @@ import pytest from pybind11_tests import class_sh_property_non_owning as m -if not m.defined_PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT: +if not m.defined_PYBIND11_SMART_HOLDER_ENABLED: pytest.skip("smart_holder not available.", allow_module_level=True) diff --git a/tests/test_class_sh_shared_ptr_copy_move.cpp b/tests/test_class_sh_shared_ptr_copy_move.cpp index fd79d3d1b..999832718 100644 --- a/tests/test_class_sh_shared_ptr_copy_move.cpp +++ b/tests/test_class_sh_shared_ptr_copy_move.cpp @@ -50,8 +50,8 @@ PYBIND11_SMART_HOLDER_TYPE_CASTERS(pybind11_tests::FooSmHld) namespace pybind11_tests { TEST_SUBMODULE(class_sh_shared_ptr_copy_move, m) { - m.attr("defined_PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT") = -#ifndef PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT + m.attr("defined_PYBIND11_SMART_HOLDER_ENABLED") = +#ifndef PYBIND11_SMART_HOLDER_ENABLED false; #else true; @@ -113,7 +113,7 @@ TEST_SUBMODULE(class_sh_shared_ptr_copy_move, m) { l.append(std::move(o)); return l; }); -#endif // PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT +#endif // PYBIND11_SMART_HOLDER_ENABLED } } // namespace pybind11_tests diff --git a/tests/test_class_sh_shared_ptr_copy_move.py b/tests/test_class_sh_shared_ptr_copy_move.py index 445a657ff..70f5c76a0 100644 --- a/tests/test_class_sh_shared_ptr_copy_move.py +++ b/tests/test_class_sh_shared_ptr_copy_move.py @@ -4,7 +4,7 @@ import pytest from pybind11_tests import class_sh_shared_ptr_copy_move as m -if not m.defined_PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT: +if not m.defined_PYBIND11_SMART_HOLDER_ENABLED: pytest.skip("smart_holder not available.", allow_module_level=True) diff --git a/tests/test_class_sh_trampoline_basic.cpp b/tests/test_class_sh_trampoline_basic.cpp index bfff9520e..32bf23d2d 100644 --- a/tests/test_class_sh_trampoline_basic.cpp +++ b/tests/test_class_sh_trampoline_basic.cpp @@ -34,7 +34,7 @@ struct AbaseAlias : Abase { } }; -#ifdef PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT +#ifdef PYBIND11_SMART_HOLDER_ENABLED template <> struct AbaseAlias<1> : Abase<1>, py::trampoline_self_life_support { using Abase<1>::Abase; @@ -46,7 +46,7 @@ struct AbaseAlias<1> : Abase<1>, py::trampoline_self_life_support { other_val); } }; -#endif // PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT +#endif // PYBIND11_SMART_HOLDER_ENABLED template int AddInCppRawPtr(const Abase *obj, int other_val) { @@ -63,9 +63,9 @@ int AddInCppUniquePtr(std::unique_ptr> obj, int other_val) { return obj->Add(other_val) * 100 + 13; } +#ifdef PYBIND11_SMART_HOLDER_ENABLED template void wrap(py::module_ m, const char *py_class_name) { -#ifdef PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT py::classh, AbaseAlias>(m, py_class_name) .def(py::init(), py::arg("val")) .def("Get", &Abase::Get) @@ -74,8 +74,8 @@ void wrap(py::module_ m, const char *py_class_name) { m.def("AddInCppRawPtr", AddInCppRawPtr, py::arg("obj"), py::arg("other_val")); m.def("AddInCppSharedPtr", AddInCppSharedPtr, py::arg("obj"), py::arg("other_val")); m.def("AddInCppUniquePtr", AddInCppUniquePtr, py::arg("obj"), py::arg("other_val")); -#endif } +#endif } // namespace class_sh_trampoline_basic } // namespace pybind11_tests @@ -86,13 +86,13 @@ PYBIND11_SMART_HOLDER_TYPE_CASTERS(Abase<0>) PYBIND11_SMART_HOLDER_TYPE_CASTERS(Abase<1>) TEST_SUBMODULE(class_sh_trampoline_basic, m) { - m.attr("defined_PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT") = -#ifndef PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT + m.attr("defined_PYBIND11_SMART_HOLDER_ENABLED") = +#ifndef PYBIND11_SMART_HOLDER_ENABLED false; #else true; wrap<0>(m, "Abase0"); wrap<1>(m, "Abase1"); -#endif // PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT +#endif // PYBIND11_SMART_HOLDER_ENABLED } diff --git a/tests/test_class_sh_trampoline_basic.py b/tests/test_class_sh_trampoline_basic.py index ba3f94d67..935a17275 100644 --- a/tests/test_class_sh_trampoline_basic.py +++ b/tests/test_class_sh_trampoline_basic.py @@ -4,7 +4,7 @@ import pytest from pybind11_tests import class_sh_trampoline_basic as m -if not m.defined_PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT: +if not m.defined_PYBIND11_SMART_HOLDER_ENABLED: pytest.skip("smart_holder not available.", allow_module_level=True) diff --git a/tests/test_class_sh_trampoline_self_life_support.cpp b/tests/test_class_sh_trampoline_self_life_support.cpp index 68e91aa3a..c342598e5 100644 --- a/tests/test_class_sh_trampoline_self_life_support.cpp +++ b/tests/test_class_sh_trampoline_self_life_support.cpp @@ -38,7 +38,7 @@ protected: Big5() : history{"DefaultConstructor"} {} }; -#ifdef PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT +#ifdef PYBIND11_SMART_HOLDER_ENABLED struct Big5Trampoline : Big5, py::trampoline_self_life_support { using Big5::Big5; }; @@ -52,8 +52,8 @@ using namespace pybind11_tests::class_sh_trampoline_self_life_support; PYBIND11_SMART_HOLDER_TYPE_CASTERS(Big5) TEST_SUBMODULE(class_sh_trampoline_self_life_support, m) { - m.attr("defined_PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT") = -#ifndef PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT + m.attr("defined_PYBIND11_SMART_HOLDER_ENABLED") = +#ifndef PYBIND11_SMART_HOLDER_ENABLED false; #else true; @@ -94,5 +94,5 @@ TEST_SUBMODULE(class_sh_trampoline_self_life_support, m) { py::object o1 = py::cast(std::move(obj)); return py::make_tuple(o1, o2); }); -#endif // PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT +#endif // PYBIND11_SMART_HOLDER_ENABLED } diff --git a/tests/test_class_sh_trampoline_self_life_support.py b/tests/test_class_sh_trampoline_self_life_support.py index 8aab5d9d5..076f3007d 100644 --- a/tests/test_class_sh_trampoline_self_life_support.py +++ b/tests/test_class_sh_trampoline_self_life_support.py @@ -4,7 +4,7 @@ import pytest import pybind11_tests.class_sh_trampoline_self_life_support as m -if not m.defined_PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT: +if not m.defined_PYBIND11_SMART_HOLDER_ENABLED: pytest.skip("smart_holder not available.", allow_module_level=True) diff --git a/tests/test_class_sh_trampoline_shared_from_this.cpp b/tests/test_class_sh_trampoline_shared_from_this.cpp index 9c2e4ec76..d09fe0041 100644 --- a/tests/test_class_sh_trampoline_shared_from_this.cpp +++ b/tests/test_class_sh_trampoline_shared_from_this.cpp @@ -71,7 +71,7 @@ struct SftSharedPtrStash { } }; -#ifdef PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT +#ifdef PYBIND11_SMART_HOLDER_ENABLED struct SftTrampoline : Sft, py::trampoline_self_life_support { using Sft::Sft; }; @@ -115,8 +115,8 @@ PYBIND11_SMART_HOLDER_TYPE_CASTERS(Sft) PYBIND11_SMART_HOLDER_TYPE_CASTERS(SftSharedPtrStash) TEST_SUBMODULE(class_sh_trampoline_shared_from_this, m) { - m.attr("defined_PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT") = -#ifndef PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT + m.attr("defined_PYBIND11_SMART_HOLDER_ENABLED") = +#ifndef PYBIND11_SMART_HOLDER_ENABLED false; #else true; @@ -146,5 +146,5 @@ TEST_SUBMODULE(class_sh_trampoline_shared_from_this, m) { m.def("make_pure_cpp_sft_unq_ptr", make_pure_cpp_sft_unq_ptr); m.def("make_pure_cpp_sft_shd_ptr", make_pure_cpp_sft_shd_ptr); m.def("pass_through_shd_ptr", pass_through_shd_ptr); -#endif // PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT +#endif // PYBIND11_SMART_HOLDER_ENABLED } diff --git a/tests/test_class_sh_trampoline_shared_from_this.py b/tests/test_class_sh_trampoline_shared_from_this.py index 7c5ee0e8e..197e72ce3 100644 --- a/tests/test_class_sh_trampoline_shared_from_this.py +++ b/tests/test_class_sh_trampoline_shared_from_this.py @@ -8,7 +8,7 @@ import pytest import env import pybind11_tests.class_sh_trampoline_shared_from_this as m -if not m.defined_PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT: +if not m.defined_PYBIND11_SMART_HOLDER_ENABLED: pytest.skip("smart_holder not available.", allow_module_level=True) diff --git a/tests/test_class_sh_trampoline_shared_ptr_cpp_arg.cpp b/tests/test_class_sh_trampoline_shared_ptr_cpp_arg.cpp index d9605c8c0..ced2ea9dd 100644 --- a/tests/test_class_sh_trampoline_shared_ptr_cpp_arg.cpp +++ b/tests/test_class_sh_trampoline_shared_ptr_cpp_arg.cpp @@ -63,8 +63,8 @@ PYBIND11_SMART_HOLDER_TYPE_CASTERS(SpGoAway) PYBIND11_SMART_HOLDER_TYPE_CASTERS(SpGoAwayTester) TEST_SUBMODULE(class_sh_trampoline_shared_ptr_cpp_arg, m) { - m.attr("defined_PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT") = -#ifndef PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT + m.attr("defined_PYBIND11_SMART_HOLDER_ENABLED") = +#ifndef PYBIND11_SMART_HOLDER_ENABLED false; #else true; @@ -101,5 +101,5 @@ TEST_SUBMODULE(class_sh_trampoline_shared_ptr_cpp_arg, m) { py::classh(m, "SpGoAwayTester") .def(py::init<>()) .def_readwrite("obj", &SpGoAwayTester::m_obj); -#endif // PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT +#endif // PYBIND11_SMART_HOLDER_ENABLED } diff --git a/tests/test_class_sh_trampoline_shared_ptr_cpp_arg.py b/tests/test_class_sh_trampoline_shared_ptr_cpp_arg.py index 85977542e..7de9d0690 100644 --- a/tests/test_class_sh_trampoline_shared_ptr_cpp_arg.py +++ b/tests/test_class_sh_trampoline_shared_ptr_cpp_arg.py @@ -4,7 +4,7 @@ import pytest import pybind11_tests.class_sh_trampoline_shared_ptr_cpp_arg as m -if not m.defined_PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT: +if not m.defined_PYBIND11_SMART_HOLDER_ENABLED: pytest.skip("smart_holder not available.", allow_module_level=True) diff --git a/tests/test_class_sh_trampoline_unique_ptr.cpp b/tests/test_class_sh_trampoline_unique_ptr.cpp index d5406c9e8..72c0ca5e0 100644 --- a/tests/test_class_sh_trampoline_unique_ptr.cpp +++ b/tests/test_class_sh_trampoline_unique_ptr.cpp @@ -39,7 +39,7 @@ PYBIND11_SMART_HOLDER_TYPE_CASTERS(pybind11_tests::class_sh_trampoline_unique_pt namespace pybind11_tests { namespace class_sh_trampoline_unique_ptr { -#ifdef PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT +#ifdef PYBIND11_SMART_HOLDER_ENABLED class PyClass : public Class, public py::trampoline_self_life_support { public: std::unique_ptr clone() const override { @@ -54,8 +54,8 @@ public: } // namespace pybind11_tests TEST_SUBMODULE(class_sh_trampoline_unique_ptr, m) { - m.attr("defined_PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT") = -#ifndef PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT + m.attr("defined_PYBIND11_SMART_HOLDER_ENABLED") = +#ifndef PYBIND11_SMART_HOLDER_ENABLED false; #else true; @@ -71,5 +71,5 @@ TEST_SUBMODULE(class_sh_trampoline_unique_ptr, m) { m.def("clone", [](const Class &obj) { return obj.clone(); }); m.def("clone_and_foo", [](const Class &obj) { return obj.clone()->foo(); }); -#endif // PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT +#endif // PYBIND11_SMART_HOLDER_ENABLED } diff --git a/tests/test_class_sh_trampoline_unique_ptr.py b/tests/test_class_sh_trampoline_unique_ptr.py index 893f3ae66..4044761fb 100644 --- a/tests/test_class_sh_trampoline_unique_ptr.py +++ b/tests/test_class_sh_trampoline_unique_ptr.py @@ -4,7 +4,7 @@ import pytest import pybind11_tests.class_sh_trampoline_unique_ptr as m -if not m.defined_PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT: +if not m.defined_PYBIND11_SMART_HOLDER_ENABLED: pytest.skip("smart_holder not available.", allow_module_level=True) diff --git a/tests/test_class_sh_unique_ptr_custom_deleter.cpp b/tests/test_class_sh_unique_ptr_custom_deleter.cpp index e71d34dcf..4bc4566bf 100644 --- a/tests/test_class_sh_unique_ptr_custom_deleter.cpp +++ b/tests/test_class_sh_unique_ptr_custom_deleter.cpp @@ -31,8 +31,8 @@ namespace pybind11_tests { namespace class_sh_unique_ptr_custom_deleter { TEST_SUBMODULE(class_sh_unique_ptr_custom_deleter, m) { - m.attr("defined_PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT") = -#ifndef PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT + m.attr("defined_PYBIND11_SMART_HOLDER_ENABLED") = +#ifndef PYBIND11_SMART_HOLDER_ENABLED false; #else true; @@ -40,7 +40,7 @@ TEST_SUBMODULE(class_sh_unique_ptr_custom_deleter, m) { py::classh(m, "Pet").def_readwrite("name", &Pet::name); m.def("create", &Pet::New); -#endif // PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT +#endif // PYBIND11_SMART_HOLDER_ENABLED } } // namespace class_sh_unique_ptr_custom_deleter diff --git a/tests/test_class_sh_unique_ptr_custom_deleter.py b/tests/test_class_sh_unique_ptr_custom_deleter.py index fbe7e5992..8658de8d1 100644 --- a/tests/test_class_sh_unique_ptr_custom_deleter.py +++ b/tests/test_class_sh_unique_ptr_custom_deleter.py @@ -4,7 +4,7 @@ import pytest from pybind11_tests import class_sh_unique_ptr_custom_deleter as m -if not m.defined_PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT: +if not m.defined_PYBIND11_SMART_HOLDER_ENABLED: pytest.skip("smart_holder not available.", allow_module_level=True) diff --git a/tests/test_class_sh_unique_ptr_member.cpp b/tests/test_class_sh_unique_ptr_member.cpp index 410c65ab2..90df0c62c 100644 --- a/tests/test_class_sh_unique_ptr_member.cpp +++ b/tests/test_class_sh_unique_ptr_member.cpp @@ -45,8 +45,8 @@ namespace pybind11_tests { namespace class_sh_unique_ptr_member { TEST_SUBMODULE(class_sh_unique_ptr_member, m) { - m.attr("defined_PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT") = -#ifndef PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT + m.attr("defined_PYBIND11_SMART_HOLDER_ENABLED") = +#ifndef PYBIND11_SMART_HOLDER_ENABLED false; #else true; @@ -60,7 +60,7 @@ TEST_SUBMODULE(class_sh_unique_ptr_member, m) { .def("is_owner", &ptr_owner::is_owner) .def("give_up_ownership_via_unique_ptr", &ptr_owner::give_up_ownership_via_unique_ptr) .def("give_up_ownership_via_shared_ptr", &ptr_owner::give_up_ownership_via_shared_ptr); -#endif // PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT +#endif // PYBIND11_SMART_HOLDER_ENABLED } } // namespace class_sh_unique_ptr_member diff --git a/tests/test_class_sh_unique_ptr_member.py b/tests/test_class_sh_unique_ptr_member.py index 56ca8d067..25bcba976 100644 --- a/tests/test_class_sh_unique_ptr_member.py +++ b/tests/test_class_sh_unique_ptr_member.py @@ -4,7 +4,7 @@ import pytest from pybind11_tests import class_sh_unique_ptr_member as m -if not m.defined_PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT: +if not m.defined_PYBIND11_SMART_HOLDER_ENABLED: pytest.skip("smart_holder not available.", allow_module_level=True) diff --git a/tests/test_class_sh_virtual_py_cpp_mix.cpp b/tests/test_class_sh_virtual_py_cpp_mix.cpp index 7184322ab..28f7d8fd6 100644 --- a/tests/test_class_sh_virtual_py_cpp_mix.cpp +++ b/tests/test_class_sh_virtual_py_cpp_mix.cpp @@ -31,7 +31,7 @@ int get_from_cpp_plainc_ptr(const Base *b) { return b->get() + 4000; } int get_from_cpp_unique_ptr(std::unique_ptr b) { return b->get() + 5000; } -#ifdef PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT +#ifdef PYBIND11_SMART_HOLDER_ENABLED struct BaseVirtualOverrider : Base, py::trampoline_self_life_support { using Base::Base; @@ -57,8 +57,8 @@ PYBIND11_SMART_HOLDER_TYPE_CASTERS(CppDerivedPlain) PYBIND11_SMART_HOLDER_TYPE_CASTERS(CppDerived) TEST_SUBMODULE(class_sh_virtual_py_cpp_mix, m) { - m.attr("defined_PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT") = -#ifndef PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT + m.attr("defined_PYBIND11_SMART_HOLDER_ENABLED") = +#ifndef PYBIND11_SMART_HOLDER_ENABLED false; #else true; @@ -71,5 +71,5 @@ TEST_SUBMODULE(class_sh_virtual_py_cpp_mix, m) { m.def("get_from_cpp_plainc_ptr", get_from_cpp_plainc_ptr, py::arg("b")); m.def("get_from_cpp_unique_ptr", get_from_cpp_unique_ptr, py::arg("b")); -#endif // PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT +#endif // PYBIND11_SMART_HOLDER_ENABLED } diff --git a/tests/test_class_sh_virtual_py_cpp_mix.py b/tests/test_class_sh_virtual_py_cpp_mix.py index 76bb09a49..937a15ab4 100644 --- a/tests/test_class_sh_virtual_py_cpp_mix.py +++ b/tests/test_class_sh_virtual_py_cpp_mix.py @@ -4,7 +4,7 @@ import pytest from pybind11_tests import class_sh_virtual_py_cpp_mix as m -if not m.defined_PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT: +if not m.defined_PYBIND11_SMART_HOLDER_ENABLED: pytest.skip("smart_holder not available.", allow_module_level=True) diff --git a/ubench/holder_comparison.cpp b/ubench/holder_comparison.cpp index f9673b573..feed3a0b5 100644 --- a/ubench/holder_comparison.cpp +++ b/ubench/holder_comparison.cpp @@ -22,7 +22,7 @@ void wrap_number_bucket(py::module m, const char *class_name) { .def("add", &WrappedType::add, py::arg("other")); } -#ifdef PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT +#ifdef PYBIND11_SMART_HOLDER_ENABLED template class padded_unique_ptr { @@ -41,7 +41,7 @@ static_assert(sizeof(padded_unique_ptr) == sizeof(py::smart_holder), } // namespace hc -#ifdef PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT +#ifdef PYBIND11_SMART_HOLDER_ENABLED PYBIND11_DECLARE_HOLDER_TYPE(T, hc::padded_unique_ptr); #endif @@ -49,7 +49,7 @@ PYBIND11_MODULE(pybind11_ubench_holder_comparison, m) { using namespace hc; wrap_number_bucket>(m, "number_bucket_up"); wrap_number_bucket>(m, "number_bucket_sp"); -#ifdef PYBIND11_HAS_INTERNALS_WITH_SMART_HOLDER_SUPPORT +#ifdef PYBIND11_SMART_HOLDER_ENABLED m.def("sizeof_smart_holder", []() { return sizeof(py::smart_holder); }); wrap_number_bucket>(m, "number_bucket_pu"); wrap_number_bucket(m, "number_bucket_sh");