From 118520f04a84b6246a1fb1c6db4ce99290a79956 Mon Sep 17 00:00:00 2001 From: Eugene Zhulenev Date: Fri, 2 Nov 2018 14:48:28 -0700 Subject: [PATCH] Workaround nbcc+msvc compiler bug --- Eigen/src/Core/util/ReshapedHelper.h | 6 ++++++ Eigen/src/plugins/ReshapedMethods.h | 10 ++++++---- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/Eigen/src/Core/util/ReshapedHelper.h b/Eigen/src/Core/util/ReshapedHelper.h index 97370c138..b6733b6bc 100644 --- a/Eigen/src/Core/util/ReshapedHelper.h +++ b/Eigen/src/Core/util/ReshapedHelper.h @@ -39,6 +39,12 @@ inline Index get_runtime_reshape_size(AutoSize_t /*size*/, Index other, Index to return total/other; } +template +struct get_compiletime_reshape_order +{ + enum { value = Order==AutoOrder ? Flags & RowMajorBit : Order }; +}; + } } // end namespace Eigen diff --git a/Eigen/src/plugins/ReshapedMethods.h b/Eigen/src/plugins/ReshapedMethods.h index 6885685d5..482a6b045 100644 --- a/Eigen/src/plugins/ReshapedMethods.h +++ b/Eigen/src/plugins/ReshapedMethods.h @@ -105,13 +105,13 @@ EIGEN_DEVICE_FUNC inline Reshaped::value, internal::get_compiletime_reshape_size::value, - (Order==AutoOrder?Flags&RowMajorBit:Order)> + internal::get_compiletime_reshape_order::value> reshaped(NRowsType nRows, NColsType nCols) EIGEN_RESHAPED_METHOD_CONST { return Reshaped::value, internal::get_compiletime_reshape_size::value, - (Order==AutoOrder?Flags&RowMajorBit:Order)> + internal::get_compiletime_reshape_order::value> (derived(), internal::get_runtime_reshape_size(nRows,internal::get_runtime_value(nCols),size()), internal::get_runtime_reshape_size(nCols,internal::get_runtime_value(nRows),size())); @@ -128,11 +128,13 @@ reshaped() EIGEN_RESHAPED_METHOD_CONST template EIGEN_DEVICE_FUNC -inline Reshaped +inline Reshaped::value> reshaped() EIGEN_RESHAPED_METHOD_CONST { EIGEN_STATIC_ASSERT(Order==RowMajor || Order==ColMajor || Order==AutoOrder, INVALID_TEMPLATE_PARAMETER); - return Reshaped + return Reshaped::value> (derived(), size(), 1); }