bug #697: make sure empty classes are at the end in case of multiple inheritence

This commit is contained in:
Gael Guennebaud 2014-12-02 14:40:19 +01:00
parent a819fa148d
commit 775f7e5fbb
7 changed files with 11 additions and 12 deletions

View File

@ -75,12 +75,13 @@ template<typename BinaryOp, typename Lhs, typename Rhs, typename StorageKind>
class CwiseBinaryOpImpl; class CwiseBinaryOpImpl;
template<typename BinaryOp, typename LhsType, typename RhsType> template<typename BinaryOp, typename LhsType, typename RhsType>
class CwiseBinaryOp : internal::no_assignment_operator, class CwiseBinaryOp :
public CwiseBinaryOpImpl< public CwiseBinaryOpImpl<
BinaryOp, LhsType, RhsType, BinaryOp, LhsType, RhsType,
typename internal::cwise_promote_storage_type<typename internal::traits<LhsType>::StorageKind, typename internal::cwise_promote_storage_type<typename internal::traits<LhsType>::StorageKind,
typename internal::traits<RhsType>::StorageKind, typename internal::traits<RhsType>::StorageKind,
BinaryOp>::ret> BinaryOp>::ret>,
internal::no_assignment_operator
{ {
public: public:

View File

@ -41,8 +41,7 @@ struct traits<CwiseNullaryOp<NullaryOp, PlainObjectType> > : traits<PlainObjectT
} }
template<typename NullaryOp, typename PlainObjectType> template<typename NullaryOp, typename PlainObjectType>
class CwiseNullaryOp : internal::no_assignment_operator, class CwiseNullaryOp : public internal::dense_xpr_base< CwiseNullaryOp<NullaryOp, PlainObjectType> >::type, internal::no_assignment_operator
public internal::dense_xpr_base< CwiseNullaryOp<NullaryOp, PlainObjectType> >::type
{ {
public: public:

View File

@ -53,8 +53,7 @@ template<typename UnaryOp, typename XprType, typename StorageKind>
class CwiseUnaryOpImpl; class CwiseUnaryOpImpl;
template<typename UnaryOp, typename XprType> template<typename UnaryOp, typename XprType>
class CwiseUnaryOp : internal::no_assignment_operator, class CwiseUnaryOp : public CwiseUnaryOpImpl<UnaryOp, XprType, typename internal::traits<XprType>::StorageKind>, internal::no_assignment_operator
public CwiseUnaryOpImpl<UnaryOp, XprType, typename internal::traits<XprType>::StorageKind>
{ {
public: public:

View File

@ -49,7 +49,7 @@ struct nested_eval<ReturnByValue<Derived>, n, PlainObject>
} // end namespace internal } // end namespace internal
template<typename Derived> class ReturnByValue template<typename Derived> class ReturnByValue
: internal::no_assignment_operator, public internal::dense_xpr_base< ReturnByValue<Derived> >::type : public internal::dense_xpr_base< ReturnByValue<Derived> >::type, internal::no_assignment_operator
{ {
public: public:
typedef typename internal::traits<Derived>::ReturnType ReturnType; typedef typename internal::traits<Derived>::ReturnType ReturnType;

View File

@ -49,8 +49,8 @@ struct traits<Select<ConditionMatrixType, ThenMatrixType, ElseMatrixType> >
} }
template<typename ConditionMatrixType, typename ThenMatrixType, typename ElseMatrixType> template<typename ConditionMatrixType, typename ThenMatrixType, typename ElseMatrixType>
class Select : internal::no_assignment_operator, class Select : public internal::dense_xpr_base< Select<ConditionMatrixType, ThenMatrixType, ElseMatrixType> >::type,
public internal::dense_xpr_base< Select<ConditionMatrixType, ThenMatrixType, ElseMatrixType> >::type internal::no_assignment_operator
{ {
public: public:

View File

@ -55,8 +55,8 @@ struct traits<PartialReduxExpr<MatrixType, MemberOp, Direction> >
} }
template< typename MatrixType, typename MemberOp, int Direction> template< typename MatrixType, typename MemberOp, int Direction>
class PartialReduxExpr : internal::no_assignment_operator, class PartialReduxExpr : public internal::dense_xpr_base< PartialReduxExpr<MatrixType, MemberOp, Direction> >::type,
public internal::dense_xpr_base< PartialReduxExpr<MatrixType, MemberOp, Direction> >::type internal::no_assignment_operator
{ {
public: public:

View File

@ -58,7 +58,7 @@ template<typename MatrixType,typename Rhs> struct homogeneous_right_product_impl
} // end namespace internal } // end namespace internal
template<typename MatrixType,int _Direction> class Homogeneous template<typename MatrixType,int _Direction> class Homogeneous
: internal::no_assignment_operator, public MatrixBase<Homogeneous<MatrixType,_Direction> > : public MatrixBase<Homogeneous<MatrixType,_Direction> >, internal::no_assignment_operator
{ {
public: public: