diff options
author | 2010-09-27 09:57:57 -0400 | |
---|---|---|
committer | 2010-09-27 09:57:57 -0400 | |
commit | 71f023de3e7a41f456d538d4cdb75c72b90dcc75 (patch) | |
tree | d9e7b585ba2836f60a7fe9ffd306192aae1c38d4 /Eigen | |
parent | 94ea1eed9a496cc614dcf496453485e904e974c4 (diff) |
fix compilation on ubuntu 9.04's version of gcc 4.3 (yes, wtf)
Diffstat (limited to 'Eigen')
-rw-r--r-- | Eigen/Core | 2 | ||||
-rw-r--r-- | Eigen/src/Core/MatrixBase.h | 12 | ||||
-rw-r--r-- | Eigen/src/Core/VectorwiseOp.h | 4 | ||||
-rw-r--r-- | Eigen/src/Core/util/StaticAssert.h | 4 | ||||
-rw-r--r-- | Eigen/src/Geometry/Homogeneous.h | 8 | ||||
-rw-r--r-- | Eigen/src/Geometry/Scaling.h | 2 |
6 files changed, 19 insertions, 13 deletions
diff --git a/Eigen/Core b/Eigen/Core index 56005f836..491e0ab63 100644 --- a/Eigen/Core +++ b/Eigen/Core @@ -26,6 +26,8 @@ #ifndef EIGEN_CORE_H #define EIGEN_CORE_H +#define EIGEN_NO_STATIC_ASSERT + // first thing Eigen does: prevent MSVC from committing suicide #include "src/Core/util/DisableMSVCWarnings.h" diff --git a/Eigen/src/Core/MatrixBase.h b/Eigen/src/Core/MatrixBase.h index c186730be..2765db5b3 100644 --- a/Eigen/src/Core/MatrixBase.h +++ b/Eigen/src/Core/MatrixBase.h @@ -341,7 +341,7 @@ template<typename Derived> class MatrixBase PlainObject cross3(const MatrixBase<OtherDerived>& other) const; PlainObject unitOrthogonal(void) const; Matrix<Scalar,3,1> eulerAngles(Index a0, Index a1, Index a2) const; - const ScalarMultipleReturnType operator*(const UniformScaling<Scalar>& s) const; + ScalarMultipleReturnType operator*(const UniformScaling<Scalar>& s) const; enum { SizeMinusOne = SizeAtCompileTime==Dynamic ? Dynamic : SizeAtCompileTime-1 }; @@ -351,9 +351,13 @@ template<typename Derived> class MatrixBase typedef CwiseUnaryOp<ei_scalar_quotient1_op<typename ei_traits<Derived>::Scalar>, StartMinusOne > HNormalizedReturnType; - const HNormalizedReturnType hnormalized() const; - typedef Homogeneous<Derived,MatrixBase<Derived>::ColsAtCompileTime==1?Vertical:Horizontal> HomogeneousReturnType; - const HomogeneousReturnType homogeneous() const; + HNormalizedReturnType hnormalized() const; + + // put this as separate enum value to work around possible GCC 4.3 bug (?) + enum { HomogeneousReturnTypeDirection = ColsAtCompileTime==1?Vertical:Horizontal }; + typedef Homogeneous<Derived, HomogeneousReturnTypeDirection> HomogeneousReturnType; + + HomogeneousReturnType homogeneous() const; ////////// Householder module /////////// diff --git a/Eigen/src/Core/VectorwiseOp.h b/Eigen/src/Core/VectorwiseOp.h index c9cb8e820..7f7ab842e 100644 --- a/Eigen/src/Core/VectorwiseOp.h +++ b/Eigen/src/Core/VectorwiseOp.h @@ -463,7 +463,7 @@ template<typename ExpressionType, int Direction> class VectorwiseOp /////////// Geometry module /////////// - const Homogeneous<ExpressionType,Direction> homogeneous() const; + Homogeneous<ExpressionType,Direction> homogeneous() const; typedef typename ExpressionType::PlainObject CrossReturnType; template<typename OtherDerived> @@ -491,7 +491,7 @@ template<typename ExpressionType, int Direction> class VectorwiseOp Direction==Horizontal ? HNormalized_SizeMinusOne : 1> > HNormalizedReturnType; - const HNormalizedReturnType hnormalized() const; + HNormalizedReturnType hnormalized() const; protected: ExpressionTypeNested m_matrix; diff --git a/Eigen/src/Core/util/StaticAssert.h b/Eigen/src/Core/util/StaticAssert.h index eb7f3ef50..323273e6a 100644 --- a/Eigen/src/Core/util/StaticAssert.h +++ b/Eigen/src/Core/util/StaticAssert.h @@ -100,12 +100,12 @@ #ifdef _MSC_VER #define EIGEN_STATIC_ASSERT(CONDITION,MSG) \ - {Eigen::ei_static_assert<CONDITION ? true : false>::MSG;} + {Eigen::ei_static_assert<(CONDITION)>::MSG;} #else #define EIGEN_STATIC_ASSERT(CONDITION,MSG) \ - if (Eigen::ei_static_assert<CONDITION ? true : false>::MSG) {} + if (Eigen::ei_static_assert<(CONDITION)>::MSG) {} #endif diff --git a/Eigen/src/Geometry/Homogeneous.h b/Eigen/src/Geometry/Homogeneous.h index 5c10e9bcf..f05899dc8 100644 --- a/Eigen/src/Geometry/Homogeneous.h +++ b/Eigen/src/Geometry/Homogeneous.h @@ -143,7 +143,7 @@ template<typename MatrixType,int _Direction> class Homogeneous * \sa class Homogeneous */ template<typename Derived> -inline const typename MatrixBase<Derived>::HomogeneousReturnType +inline typename MatrixBase<Derived>::HomogeneousReturnType MatrixBase<Derived>::homogeneous() const { EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived); @@ -159,7 +159,7 @@ MatrixBase<Derived>::homogeneous() const * * \sa MatrixBase::homogeneous() */ template<typename ExpressionType, int Direction> -inline const Homogeneous<ExpressionType,Direction> +inline Homogeneous<ExpressionType,Direction> VectorwiseOp<ExpressionType,Direction>::homogeneous() const { return _expression(); @@ -174,7 +174,7 @@ VectorwiseOp<ExpressionType,Direction>::homogeneous() const * * \sa VectorwiseOp::hnormalized() */ template<typename Derived> -inline const typename MatrixBase<Derived>::HNormalizedReturnType +inline typename MatrixBase<Derived>::HNormalizedReturnType MatrixBase<Derived>::hnormalized() const { EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived); @@ -192,7 +192,7 @@ MatrixBase<Derived>::hnormalized() const * * \sa MatrixBase::hnormalized() */ template<typename ExpressionType, int Direction> -inline const typename VectorwiseOp<ExpressionType,Direction>::HNormalizedReturnType +inline typename VectorwiseOp<ExpressionType,Direction>::HNormalizedReturnType VectorwiseOp<ExpressionType,Direction>::hnormalized() const { return HNormalized_Block(_expression(),0,0, diff --git a/Eigen/src/Geometry/Scaling.h b/Eigen/src/Geometry/Scaling.h index 05b3e0526..8fdbdb102 100644 --- a/Eigen/src/Geometry/Scaling.h +++ b/Eigen/src/Geometry/Scaling.h @@ -115,7 +115,7 @@ public: /** Concatenates a linear transformation matrix and a uniform scaling */ // NOTE this operator is defiend in MatrixBase and not as a friend function // of UniformScaling to fix an internal crash of Intel's ICC -template<typename Derived> const typename MatrixBase<Derived>::ScalarMultipleReturnType +template<typename Derived> typename MatrixBase<Derived>::ScalarMultipleReturnType MatrixBase<Derived>::operator*(const UniformScaling<Scalar>& s) const { return derived() * s.factor(); } |