From 775f7e5fbb1e40bc227f459415c6a0dcfa5cd61a Mon Sep 17 00:00:00 2001 From: Gael Guennebaud Date: Tue, 2 Dec 2014 14:40:19 +0100 Subject: [PATCH] bug #697: make sure empty classes are at the end in case of multiple inheritence --- Eigen/src/Core/CwiseBinaryOp.h | 5 +++-- Eigen/src/Core/CwiseNullaryOp.h | 3 +-- Eigen/src/Core/CwiseUnaryOp.h | 3 +-- Eigen/src/Core/ReturnByValue.h | 2 +- Eigen/src/Core/Select.h | 4 ++-- Eigen/src/Core/VectorwiseOp.h | 4 ++-- Eigen/src/Geometry/Homogeneous.h | 2 +- 7 files changed, 11 insertions(+), 12 deletions(-) diff --git a/Eigen/src/Core/CwiseBinaryOp.h b/Eigen/src/Core/CwiseBinaryOp.h index de9109e53..a205c3f10 100644 --- a/Eigen/src/Core/CwiseBinaryOp.h +++ b/Eigen/src/Core/CwiseBinaryOp.h @@ -75,12 +75,13 @@ template class CwiseBinaryOpImpl; template -class CwiseBinaryOp : internal::no_assignment_operator, +class CwiseBinaryOp : public CwiseBinaryOpImpl< BinaryOp, LhsType, RhsType, typename internal::cwise_promote_storage_type::StorageKind, typename internal::traits::StorageKind, - BinaryOp>::ret> + BinaryOp>::ret>, + internal::no_assignment_operator { public: diff --git a/Eigen/src/Core/CwiseNullaryOp.h b/Eigen/src/Core/CwiseNullaryOp.h index 8b8397da6..05c4fedd0 100644 --- a/Eigen/src/Core/CwiseNullaryOp.h +++ b/Eigen/src/Core/CwiseNullaryOp.h @@ -41,8 +41,7 @@ struct traits > : traits -class CwiseNullaryOp : internal::no_assignment_operator, - public internal::dense_xpr_base< CwiseNullaryOp >::type +class CwiseNullaryOp : public internal::dense_xpr_base< CwiseNullaryOp >::type, internal::no_assignment_operator { public: diff --git a/Eigen/src/Core/CwiseUnaryOp.h b/Eigen/src/Core/CwiseUnaryOp.h index 708e3e818..da1d1992d 100644 --- a/Eigen/src/Core/CwiseUnaryOp.h +++ b/Eigen/src/Core/CwiseUnaryOp.h @@ -53,8 +53,7 @@ template class CwiseUnaryOpImpl; template -class CwiseUnaryOp : internal::no_assignment_operator, - public CwiseUnaryOpImpl::StorageKind> +class CwiseUnaryOp : public CwiseUnaryOpImpl::StorageKind>, internal::no_assignment_operator { public: diff --git a/Eigen/src/Core/ReturnByValue.h b/Eigen/src/Core/ReturnByValue.h index 4e2a81b56..af01a5567 100644 --- a/Eigen/src/Core/ReturnByValue.h +++ b/Eigen/src/Core/ReturnByValue.h @@ -49,7 +49,7 @@ struct nested_eval, n, PlainObject> } // end namespace internal template class ReturnByValue - : internal::no_assignment_operator, public internal::dense_xpr_base< ReturnByValue >::type + : public internal::dense_xpr_base< ReturnByValue >::type, internal::no_assignment_operator { public: typedef typename internal::traits::ReturnType ReturnType; diff --git a/Eigen/src/Core/Select.h b/Eigen/src/Core/Select.h index 0c09a4ff4..79eec1b5b 100644 --- a/Eigen/src/Core/Select.h +++ b/Eigen/src/Core/Select.h @@ -49,8 +49,8 @@ struct traits > } template -class Select : internal::no_assignment_operator, - public internal::dense_xpr_base< Select >::type +class Select : public internal::dense_xpr_base< Select >::type, + internal::no_assignment_operator { public: diff --git a/Eigen/src/Core/VectorwiseOp.h b/Eigen/src/Core/VectorwiseOp.h index 2815a16c9..a626310ec 100644 --- a/Eigen/src/Core/VectorwiseOp.h +++ b/Eigen/src/Core/VectorwiseOp.h @@ -55,8 +55,8 @@ struct traits > } template< typename MatrixType, typename MemberOp, int Direction> -class PartialReduxExpr : internal::no_assignment_operator, - public internal::dense_xpr_base< PartialReduxExpr >::type +class PartialReduxExpr : public internal::dense_xpr_base< PartialReduxExpr >::type, + internal::no_assignment_operator { public: diff --git a/Eigen/src/Geometry/Homogeneous.h b/Eigen/src/Geometry/Homogeneous.h index ede203ef9..7f1907542 100644 --- a/Eigen/src/Geometry/Homogeneous.h +++ b/Eigen/src/Geometry/Homogeneous.h @@ -58,7 +58,7 @@ template struct homogeneous_right_product_impl } // end namespace internal template class Homogeneous - : internal::no_assignment_operator, public MatrixBase > + : public MatrixBase >, internal::no_assignment_operator { public: