diff options
author | Gael Guennebaud <g.gael@free.fr> | 2016-11-20 09:41:37 +0100 |
---|---|---|
committer | Gael Guennebaud <g.gael@free.fr> | 2016-11-20 09:41:37 +0100 |
commit | 465ede0f20bae4795cd56b6987aaac77c5913bb2 (patch) | |
tree | c021dee562ad3eef549552c90557d478c37ea87c /Eigen/src/Core/AssignEvaluator.h | |
parent | 81151bd47489f39dedc3e9faa32679740c98bf01 (diff) |
Fix compilation issue in mat = permutation (regression introduced in 8193ffb3d38b56c9295f204dc57dc6bac74f58aa
)
Diffstat (limited to 'Eigen/src/Core/AssignEvaluator.h')
-rw-r--r-- | Eigen/src/Core/AssignEvaluator.h | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/Eigen/src/Core/AssignEvaluator.h b/Eigen/src/Core/AssignEvaluator.h index 6225bd73d..0d0189657 100644 --- a/Eigen/src/Core/AssignEvaluator.h +++ b/Eigen/src/Core/AssignEvaluator.h @@ -877,8 +877,11 @@ struct Assignment<DstXprType, SrcXprType, Functor, EigenBase2EigenBase, Weak> src.evalTo(dst); } + // NOTE The following two functions are templated to avoid their instanciation if not needed + // This is needed because some expressions supports evalTo only and/or have 'void' as scalar type. + template<typename SrcScalarType> EIGEN_DEVICE_FUNC - static EIGEN_STRONG_INLINE void run(DstXprType &dst, const SrcXprType &src, const internal::add_assign_op<typename DstXprType::Scalar,typename SrcXprType::Scalar> &/*func*/) + static EIGEN_STRONG_INLINE void run(DstXprType &dst, const SrcXprType &src, const internal::add_assign_op<typename DstXprType::Scalar,SrcScalarType> &/*func*/) { Index dstRows = src.rows(); Index dstCols = src.cols(); @@ -889,8 +892,9 @@ struct Assignment<DstXprType, SrcXprType, Functor, EigenBase2EigenBase, Weak> src.addTo(dst); } + template<typename SrcScalarType> EIGEN_DEVICE_FUNC - static EIGEN_STRONG_INLINE void run(DstXprType &dst, const SrcXprType &src, const internal::sub_assign_op<typename DstXprType::Scalar,typename SrcXprType::Scalar> &/*func*/) + static EIGEN_STRONG_INLINE void run(DstXprType &dst, const SrcXprType &src, const internal::sub_assign_op<typename DstXprType::Scalar,SrcScalarType> &/*func*/) { Index dstRows = src.rows(); Index dstCols = src.cols(); |