mirror of
https://github.com/pybind/pybind11.git
synced 2025-01-20 09:52:36 +00:00
ff3693f1bb
This fixes a PyTorch build error (using the Google-internal toolchain): ``` In file included from third_party/py/torch/torch/csrc/distributed/c10d/init.cpp:15: In file included from third_party/py/torch/torch/csrc/distributed/c10d/PyProcessGroup.hpp:4: In file included from third_party/py/torch/torch/csrc/jit/python/pybind_utils.h:7: In file included from third_party/pybind11/include/pybind11/complex.h:14: In file included from third_party/pybind11/include/pybind11/pybind11.h:14: In file included from third_party/pybind11/include/pybind11/detail/class.h:14: In file included from third_party/pybind11/include/pybind11/detail/../attr.h:16: third_party/pybind11/include/pybind11/detail/../cast.h:856:19: error: static assertion failed due to requirement 'std::is_base_of<pybind11::detail::type_caster_base<c10::intrusive_ptr<c10d::Store, c10::detail::intrusive_target_default_null_type<c10d::Store>>>, pybind11::detail::type_caster<c10::intrusive_ptr<c10d::Store, c10::detail::intrusive_target_default_null_type<c10d::Store>>, void>>::value': Holder classes are only supported for custom types 856 | static_assert(std::is_base_of<base, type_caster<type>>::value, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ third_party/pybind11/include/pybind11/detail/../cast.h:982:48: note: in instantiation of template class 'pybind11::detail::copyable_holder_caster<c10::intrusive_ptr<c10d::Store>, std::shared_ptr<c10::intrusive_ptr<c10d::Store>>>' requested here 982 | class type_caster<std::shared_ptr<T>> : public copyable_holder_caster<T, std::shared_ptr<T>> {}; | ^ third_party/crosstool/v18/stable/src/libcxx/include/__type_traits/is_base_of.h:22:91: note: in instantiation of template class 'pybind11::detail::type_caster<std::shared_ptr<c10::intrusive_ptr<c10d::Store>>>' requested here 22 | struct _LIBCPP_TEMPLATE_VIS is_base_of : public integral_constant<bool, __is_base_of(_Bp, _Dp)> {}; | ^ third_party/pybind11/include/pybind11/detail/../cast.h:1382:30: note: in instantiation of template class 'std::is_base_of<pybind11::detail::type_caster_generic, pybind11::detail::type_caster<std::shared_ptr<c10::intrusive_ptr<c10d::Store>>>>' requested here 1382 | detail::enable_if_t<std::is_base_of<type_caster_generic, make_caster<Return>>::value, void>> { | ^ third_party/pybind11/include/pybind11/pybind11.h:287:19: note: during template argument deduction for class template partial specialization 'return_value_policy_override<Return, detail::enable_if_t<std::is_base_of<type_caster_generic, make_caster<Return>>::value, void>>' [with Return = std::shared_ptr<c10::intrusive_ptr<c10d::Store>>] 287 | = return_value_policy_override<Return>::policy(call.func.policy); | ^ third_party/pybind11/include/pybind11/pybind11.h:287:19: note: in instantiation of template class 'pybind11::detail::return_value_policy_override<std::shared_ptr<c10::intrusive_ptr<c10d::Store>>>' requested here third_party/pybind11/include/pybind11/pybind11.h:269:55: note: while substituting into a lambda expression here 269 | rec->impl = [](function_call &call) -> handle { | ^ third_party/pybind11/include/pybind11/pybind11.h:147:9: note: in instantiation of function template specialization 'pybind11::cpp_function::initialize<(lambda at third_party/pybind11/include/pybind11/pybind11.h:1714:17), std::shared_ptr<c10::intrusive_ptr<c10d::Store>>, pybind11::handle, pybind11::is_method>' requested here 147 | initialize( | ^ third_party/pybind11/include/pybind11/pybind11.h:1713:20: note: in instantiation of function template specialization 'pybind11::cpp_function::cpp_function<(lambda at third_party/pybind11/include/pybind11/pybind11.h:1714:17), pybind11::is_method, void>' requested here 1713 | return cpp_function( | ^ third_party/pybind11/include/pybind11/pybind11.h:1964:54: note: in instantiation of function template specialization 'pybind11::property_cpp_function<c10d::DistributedBackendOptions, c10::intrusive_ptr<c10d::Store>>::read<c10::intrusive_ptr<c10d::Store> c10d::DistributedBackendOptions::*, 0>' requested here 1964 | property_cpp_function<type, D>::read(pm, *this), | ^ third_party/py/torch/torch/csrc/distributed/c10d/init.cpp:945:8: note: in instantiation of function template specialization 'pybind11::class_<c10d::DistributedBackendOptions>::def_readwrite<c10d::DistributedBackendOptions, c10::intrusive_ptr<c10d::Store>>' requested here 945 | .def_readwrite("store", &::c10d::DistributedBackendOptions::store) | ^ 1 error generated. ``` |
||
---|---|---|
.. | ||
pybind11 |