fix ei_blas_traits directaccess check: in the case of vectors, having a nontrivial inner stride is OK.

This commit is contained in:
Benoit Jacob
2010-04-16 14:12:53 -04:00
parent 04c663840b
commit d9ee28851e
2 changed files with 5 additions and 8 deletions

View File

@@ -158,8 +158,8 @@ template<typename XprType> struct ei_blas_traits
IsComplex = NumTraits<Scalar>::IsComplex,
IsTransposed = false,
NeedToConjugate = false,
ActualAccess = ( (int(ei_traits<XprType>::Flags)&DirectAccessBit)
&& (int(ei_inner_stride_at_compile_time<XprType>::ret) == 1)
ActualAccess = ( (int(XprType::Flags)&DirectAccessBit)
&& (bool(XprType::IsVectorAtCompileTime) || int(ei_inner_stride_at_compile_time<XprType>::ret) == 1)
) ? HasDirectAccess : NoDirectAccess
};
typedef typename ei_meta_if<int(ActualAccess)==HasDirectAccess,