| 43 | */ |
| 44 | template<typename _Scalar, int _Rows, int _Cols, int _Options, int _MaxRows, int _MaxCols> |
| 45 | class Array |
| 46 | : public PlainObjectBase<Array<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols> > |
| 47 | { |
| 48 | public: |
| 49 | |
| 50 | typedef PlainObjectBase<Array> Base; |
| 51 | EIGEN_DENSE_PUBLIC_INTERFACE(Array) |
| 52 | |
| 53 | enum { Options = _Options }; |
| 54 | typedef typename Base::PlainObject PlainObject; |
| 55 | |
| 56 | protected: |
| 57 | template <typename Derived, typename OtherDerived, bool IsVector> |
| 58 | friend struct internal::conservative_resize_like_impl; |
| 59 | |
| 60 | using Base::m_storage; |
| 61 | |
| 62 | public: |
| 63 | |
| 64 | using Base::base; |
| 65 | using Base::coeff; |
| 66 | using Base::coeffRef; |
| 67 | |
| 68 | /** |
| 69 | * The usage of |
| 70 | * using Base::operator=; |
| 71 | * fails on MSVC. Since the code below is working with GCC and MSVC, we skipped |
| 72 | * the usage of 'using'. This should be done only for operator=. |
| 73 | */ |
| 74 | template<typename OtherDerived> |
| 75 | EIGEN_DEVICE_FUNC |
| 76 | EIGEN_STRONG_INLINE Array& operator=(const EigenBase<OtherDerived> &other) |
| 77 | { |
| 78 | return Base::operator=(other); |
| 79 | } |
| 80 | |
| 81 | /** Set all the entries to \a value. |
| 82 | * \sa DenseBase::setConstant(), DenseBase::fill() |
| 83 | */ |
| 84 | /* This overload is needed because the usage of |
| 85 | * using Base::operator=; |
| 86 | * fails on MSVC. Since the code below is working with GCC and MSVC, we skipped |
| 87 | * the usage of 'using'. This should be done only for operator=. |
| 88 | */ |
| 89 | EIGEN_DEVICE_FUNC |
| 90 | EIGEN_STRONG_INLINE Array& operator=(const Scalar &value) |
| 91 | { |
| 92 | Base::setConstant(value); |
| 93 | return *this; |
| 94 | } |
| 95 | |
| 96 | /** Copies the value of the expression \a other into \c *this with automatic resizing. |
| 97 | * |
| 98 | * *this might be resized to match the dimensions of \a other. If *this was a null matrix (not already initialized), |
| 99 | * it will be initialized. |
| 100 | * |
| 101 | * Note that copying a row-vector into a vector (and conversely) is allowed. |
| 102 | * The resizing, if any, is then done in the appropriate way so that row-vectors |
nothing calls this directly
no test coverage detected