Various compilation fixes for MSVC 9. All tests compile but some

still fail at runtime in ei_aligned_free() (even without vectorization).
This commit is contained in:
Gael Guennebaud
2008-08-19 11:06:40 +00:00
parent 9466e5f94e
commit a6d387a359
14 changed files with 50 additions and 49 deletions

View File

@@ -99,6 +99,8 @@ using Eigen::MatrixBase;
#define EIGEN_ALIGN_128
#endif
#define EIGEN_RESTRICT __restrict
#define EIGEN_INHERIT_ASSIGNMENT_OPERATOR(Derived, Op) \
template<typename OtherDerived> \
Derived& operator Op(const MatrixBase<OtherDerived>& other) \

View File

@@ -224,12 +224,16 @@ template<typename T> struct ei_must_nest_by_value<NestByValue<T> > { enum { ret
template<typename T, int n=1, typename EvalType = typename ei_eval<T>::type> struct ei_nested
{
enum {
CostEval = (n+1) * int(NumTraits<typename ei_traits<T>::Scalar>::ReadCost),
CostNoEval = (n-1) * int(ei_traits<T>::CoeffReadCost)
};
typedef typename ei_meta_if<
ei_must_nest_by_value<T>::ret,
T,
typename ei_meta_if<
(int(ei_traits<T>::Flags) & EvalBeforeNestingBit)
|| ((n+1) * int(NumTraits<typename ei_traits<T>::Scalar>::ReadCost) <= (n-1) * int(T::CoeffReadCost)),
|| ( int(CostEval) <= int(CostNoEval) ),
EvalType,
const T&
>::ret