aboutsummaryrefslogtreecommitdiffhomepage
path: root/unsupported/Eigen
diff options
context:
space:
mode:
authorGravatar Benoit Steiner <benoit.steiner.goog@gmail.com>2016-02-21 22:43:37 -0800
committerGravatar Benoit Steiner <benoit.steiner.goog@gmail.com>2016-02-21 22:43:37 -0800
commit257b640463401ce042ffd223083d443b9a3690fa (patch)
tree0eb6c6711ed0f86c2f17ec6cecbae443a5d7fcb0 /unsupported/Eigen
parent584832cb3c46126697844d0afb9ef56b8da9f049 (diff)
Fixed compilation warning generated by clang
Diffstat (limited to 'unsupported/Eigen')
-rw-r--r--unsupported/Eigen/CXX11/src/Tensor/TensorConversion.h18
1 files changed, 13 insertions, 5 deletions
diff --git a/unsupported/Eigen/CXX11/src/Tensor/TensorConversion.h b/unsupported/Eigen/CXX11/src/Tensor/TensorConversion.h
index 21bb91d69..4e87813a9 100644
--- a/unsupported/Eigen/CXX11/src/Tensor/TensorConversion.h
+++ b/unsupported/Eigen/CXX11/src/Tensor/TensorConversion.h
@@ -165,6 +165,18 @@ class TensorConversionOp : public TensorBase<TensorConversionOp<TargetType, XprT
typename XprType::Nested m_xpr;
};
+template <bool SameType, typename Eval, typename Scalar> struct ConversionSubExprEval {
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE static bool run(Eval& impl, Scalar*) {
+ impl.evalSubExprsIfNeeded(NULL);
+ return true;
+ }
+};
+
+template <typename Eval, typename Scalar> struct ConversionSubExprEval<true, Eval, Scalar> {
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE static bool run(Eval& impl, Scalar* data) {
+ return impl.evalSubExprsIfNeeded(data);
+ }
+};
@@ -197,11 +209,7 @@ struct TensorEvaluator<const TensorConversionOp<TargetType, ArgType>, Device>
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE bool evalSubExprsIfNeeded(Scalar* data)
{
- if (internal::is_same<TargetType, SrcType>::value) {
- return m_impl.evalSubExprsIfNeeded((SrcType*)data);
- }
- m_impl.evalSubExprsIfNeeded(NULL);
- return true;
+ return ConversionSubExprEval<internal::is_same<TargetType, SrcType>::value, TensorEvaluator<ArgType, Device>, Scalar>::run(m_impl, data);
}
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void cleanup()