diff --git a/Eigen/src/Core/BooleanRedux.h b/Eigen/src/Core/BooleanRedux.h index 15e9f3f8d..d555c86f7 100644 --- a/Eigen/src/Core/BooleanRedux.h +++ b/Eigen/src/Core/BooleanRedux.h @@ -18,7 +18,7 @@ template struct all_unroller { enum { - IsRowMajor = (Derived::Flags & RowMajor), + IsRowMajor = (int(Derived::Flags) & int(RowMajor)), i = (UnrollCount-1) / InnerSize, j = (UnrollCount-1) % InnerSize }; @@ -45,7 +45,7 @@ template struct any_unroller { enum { - IsRowMajor = (Derived::Flags & RowMajor), + IsRowMajor = (int(Derived::Flags) & int(RowMajor)), i = (UnrollCount-1) / InnerSize, j = (UnrollCount-1) % InnerSize }; @@ -84,7 +84,7 @@ EIGEN_DEVICE_FUNC inline bool DenseBase::all() const enum { unroll = SizeAtCompileTime != Dynamic && SizeAtCompileTime * (int(Evaluator::CoeffReadCost) + int(NumTraits::AddCost)) <= EIGEN_UNROLLING_LIMIT, - IsRowMajor = (internal::traits::Flags & RowMajor), + IsRowMajor = (int(internal::traits::Flags) & int(RowMajor)), InnerSizeAtCompileTime = IsRowMajor ? internal::traits::ColsAtCompileTime : internal::traits::RowsAtCompileTime }; Evaluator evaluator(derived()); @@ -110,7 +110,7 @@ EIGEN_DEVICE_FUNC inline bool DenseBase::any() const enum { unroll = SizeAtCompileTime != Dynamic && SizeAtCompileTime * (int(Evaluator::CoeffReadCost) + int(NumTraits::AddCost)) <= EIGEN_UNROLLING_LIMIT, - IsRowMajor = (internal::traits::Flags & RowMajor), + IsRowMajor = (int(internal::traits::Flags) & int(RowMajor)), InnerSizeAtCompileTime = IsRowMajor ? internal::traits::ColsAtCompileTime : internal::traits::RowsAtCompileTime }; Evaluator evaluator(derived());