mirror of
https://github.com/pybind/pybind11.git
synced 2026-05-13 01:36:21 +00:00
Using dynamic_cast<AliasType> to determine pointee_depends_on_holder_owner. (#2910)
* Adaption of PyCLIF virtual_py_cpp_mix test. * Removing ValueError: Ownership of instance with virtual overrides in Python cannot be transferred to C++. TODO: static_assert alias class needs to inherit from virtual_overrider_self_life_support. * Bringing back ValueError: "... instance cannot safely be transferred to C++.", but based on dynamic_cast<AliasType>. * Fixing oversight: adding test_class_sh_virtual_py_cpp_mix.cpp to cmake file. * clang <= 3.6 compatibility. * Fixing oversight: dynamic_raw_ptr_cast_if_possible needs special handling for To = void. Adding corresponding missing test in test_class_sh_virtual_py_cpp_mix. Moving dynamic_raw_ptr_cast_if_possible to separate header. * Changing py::detail::virtual_overrider_self_life_support to py::virtual_overrider_self_life_support.
This commit is contained in:
committed by
GitHub
parent
3f35af7441
commit
5319ca3817
@@ -35,7 +35,7 @@ struct AbaseAlias : Abase<SerNo> {
|
||||
};
|
||||
|
||||
template <>
|
||||
struct AbaseAlias<1> : Abase<1>, py::detail::virtual_overrider_self_life_support {
|
||||
struct AbaseAlias<1> : Abase<1>, py::virtual_overrider_self_life_support {
|
||||
using Abase<1>::Abase;
|
||||
|
||||
int Add(int other_val) const override {
|
||||
|
||||
Reference in New Issue
Block a user