Use memset if !NumTraits<Scalar>::RequireInitialization

libeigen/eigen!2113

Closes #3019
This commit is contained in:
Charles Schlosser
2026-01-22 01:01:26 +00:00
parent f46a2c561e
commit e246f9cb68

View File

@@ -93,8 +93,10 @@ struct eigen_fill_impl<Xpr, /*use_fill*/ true> {
template <typename Xpr>
struct eigen_memset_helper {
static constexpr bool value =
std::is_trivially_copyable<typename Xpr::Scalar>::value && eigen_fill_helper<Xpr>::value;
using Scalar = typename Xpr::Scalar;
static constexpr bool value = std::is_trivially_copyable<Scalar>::value &&
!static_cast<bool>(NumTraits<Scalar>::RequireInitialization) &&
eigen_fill_helper<Xpr>::value;
};
template <typename Xpr>