mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-23 01:21:42 +00:00
Fix build of Eigen 3.3.7 with GCC 9
This commit is contained in:
committed by
Peter Johnson
parent
2f680ba990
commit
8b1b9ac75a
@@ -100,6 +100,8 @@ template<typename Derived> class ArrayBase
|
||||
#undef EIGEN_CURRENT_STORAGE_BASE_CLASS
|
||||
#undef EIGEN_DOC_UNARY_ADDONS
|
||||
|
||||
constexpr ArrayBase(const ArrayBase&) = default;
|
||||
|
||||
/** Special case of the template operator=, in order to prevent the compiler
|
||||
* from generating a default operator= (issue hit with g++ 4.1)
|
||||
*/
|
||||
|
||||
@@ -47,6 +47,9 @@ class ArrayWrapper : public ArrayBase<ArrayWrapper<ExpressionType> >
|
||||
EIGEN_INHERIT_ASSIGNMENT_OPERATORS(ArrayWrapper)
|
||||
typedef typename internal::remove_all<ExpressionType>::type NestedExpression;
|
||||
|
||||
ArrayWrapper() = default;
|
||||
ArrayWrapper(const ArrayWrapper&) = default;
|
||||
|
||||
typedef typename internal::conditional<
|
||||
internal::is_lvalue<ExpressionType>::value,
|
||||
Scalar,
|
||||
|
||||
@@ -111,6 +111,9 @@ template<typename XprType, int BlockRows, int BlockCols, bool InnerPanel> class
|
||||
EIGEN_INHERIT_ASSIGNMENT_OPERATORS(Block)
|
||||
|
||||
typedef typename internal::remove_all<XprType>::type NestedExpression;
|
||||
|
||||
constexpr Block() = default;
|
||||
constexpr Block(const Block&) = default;
|
||||
|
||||
/** Column or Row constructor
|
||||
*/
|
||||
@@ -158,6 +161,8 @@ class BlockImpl<XprType, BlockRows, BlockCols, InnerPanel, Dense>
|
||||
typedef typename XprType::StorageIndex StorageIndex;
|
||||
public:
|
||||
typedef Impl Base;
|
||||
constexpr BlockImpl() = default;
|
||||
constexpr BlockImpl(const BlockImpl&) = default;
|
||||
EIGEN_INHERIT_ASSIGNMENT_OPERATORS(BlockImpl)
|
||||
EIGEN_DEVICE_FUNC inline BlockImpl(XprType& xpr, Index i) : Impl(xpr,i) {}
|
||||
EIGEN_DEVICE_FUNC inline BlockImpl(XprType& xpr, Index startRow, Index startCol) : Impl(xpr, startRow, startCol) {}
|
||||
@@ -182,6 +187,9 @@ template<typename XprType, int BlockRows, int BlockCols, bool InnerPanel, bool H
|
||||
|
||||
// class InnerIterator; // FIXME apparently never used
|
||||
|
||||
BlockImpl_dense() = default;
|
||||
BlockImpl_dense(const BlockImpl_dense&) = default;
|
||||
|
||||
/** Column or Row constructor
|
||||
*/
|
||||
EIGEN_DEVICE_FUNC
|
||||
@@ -336,6 +344,9 @@ class BlockImpl_dense<XprType,BlockRows,BlockCols, InnerPanel,true>
|
||||
};
|
||||
public:
|
||||
|
||||
BlockImpl_dense() = default;
|
||||
BlockImpl_dense(const BlockImpl_dense&) = default;
|
||||
|
||||
typedef MapBase<BlockType> Base;
|
||||
EIGEN_DENSE_PUBLIC_INTERFACE(BlockType)
|
||||
EIGEN_INHERIT_ASSIGNMENT_OPERATORS(BlockImpl_dense)
|
||||
|
||||
@@ -69,6 +69,8 @@ template<typename MatrixType, int _DiagIndex> class Diagonal
|
||||
typedef typename internal::dense_xpr_base<Diagonal>::type Base;
|
||||
EIGEN_DENSE_PUBLIC_INTERFACE(Diagonal)
|
||||
|
||||
Diagonal(const Diagonal&) = default;
|
||||
|
||||
EIGEN_DEVICE_FUNC
|
||||
explicit inline Diagonal(MatrixType& matrix, Index a_index = DiagIndex) : m_matrix(matrix), m_index(a_index)
|
||||
{
|
||||
|
||||
@@ -120,6 +120,8 @@ template<typename PlainObjectType, int MapOptions, typename StrideType> class Ma
|
||||
: (this->rows() * innerStride());
|
||||
}
|
||||
|
||||
Map(const Map&) = default;
|
||||
|
||||
/** Constructor in the fixed-size case.
|
||||
*
|
||||
* \param dataPtr pointer to the array to map
|
||||
|
||||
@@ -86,6 +86,8 @@ template<typename Derived> class MapBase<Derived, ReadOnlyAccessors>
|
||||
|
||||
typedef typename Base::CoeffReturnType CoeffReturnType;
|
||||
|
||||
MapBase(const MapBase&) = default;
|
||||
|
||||
/** \copydoc DenseBase::rows() */
|
||||
EIGEN_DEVICE_FUNC inline Index rows() const { return m_rows.value(); }
|
||||
/** \copydoc DenseBase::cols() */
|
||||
@@ -247,6 +249,8 @@ template<typename Derived> class MapBase<Derived, WriteAccessors>
|
||||
const Scalar
|
||||
>::type ScalarWithConstIfNotLvalue;
|
||||
|
||||
MapBase(const MapBase&) = default;
|
||||
|
||||
EIGEN_DEVICE_FUNC
|
||||
inline const Scalar* data() const { return this->m_data; }
|
||||
EIGEN_DEVICE_FUNC
|
||||
|
||||
@@ -132,6 +132,8 @@ template<typename Derived> class MatrixBase
|
||||
#undef EIGEN_CURRENT_STORAGE_BASE_CLASS
|
||||
#undef EIGEN_DOC_UNARY_ADDONS
|
||||
|
||||
constexpr MatrixBase(const MatrixBase& other) = default;
|
||||
|
||||
/** Special case of the template operator=, in order to prevent the compiler
|
||||
* from generating a default operator= (issue hit with g++ 4.1)
|
||||
*/
|
||||
|
||||
@@ -60,6 +60,9 @@ template<typename MatrixType> class Transpose
|
||||
EIGEN_GENERIC_PUBLIC_INTERFACE(Transpose)
|
||||
typedef typename internal::remove_all<MatrixType>::type NestedExpression;
|
||||
|
||||
constexpr Transpose() = default;
|
||||
constexpr Transpose(const Transpose&) = default;
|
||||
|
||||
EIGEN_DEVICE_FUNC
|
||||
explicit inline Transpose(MatrixType& matrix) : m_matrix(matrix) {}
|
||||
|
||||
@@ -109,6 +112,8 @@ class TransposeImpl
|
||||
: public internal::generic_xpr_base<Transpose<XprType> >::type
|
||||
{
|
||||
public:
|
||||
constexpr TransposeImpl() = default;
|
||||
constexpr TransposeImpl(const TransposeImpl&) = default;
|
||||
typedef typename internal::generic_xpr_base<Transpose<XprType> >::type Base;
|
||||
};
|
||||
|
||||
@@ -117,6 +122,8 @@ template<typename MatrixType> class TransposeImpl<MatrixType,Dense>
|
||||
{
|
||||
public:
|
||||
|
||||
constexpr TransposeImpl() = default;
|
||||
constexpr TransposeImpl(const TransposeImpl&) = default;
|
||||
typedef typename internal::TransposeImpl_base<MatrixType>::type Base;
|
||||
using Base::coeffRef;
|
||||
EIGEN_DENSE_PUBLIC_INTERFACE(Transpose<MatrixType>)
|
||||
|
||||
@@ -88,8 +88,10 @@ struct promote_scalar_arg_unsupported<S,T,S,false,true> {};
|
||||
//classes inheriting no_assignment_operator don't generate a default operator=.
|
||||
class no_assignment_operator
|
||||
{
|
||||
private:
|
||||
no_assignment_operator& operator=(const no_assignment_operator&);
|
||||
public:
|
||||
constexpr no_assignment_operator() = default;
|
||||
constexpr no_assignment_operator(const no_assignment_operator&) = default;
|
||||
no_assignment_operator& operator=(const no_assignment_operator&) = delete;
|
||||
};
|
||||
|
||||
/** \internal return the index type with the largest number of bits */
|
||||
|
||||
Reference in New Issue
Block a user