diff options
author | Gael Guennebaud <g.gael@free.fr> | 2017-02-17 14:10:57 +0100 |
---|---|---|
committer | Gael Guennebaud <g.gael@free.fr> | 2017-02-17 14:10:57 +0100 |
commit | 582b5e39bf5515a0277b8ecf9c40e09748dc7d98 (patch) | |
tree | 2d1de07da394f660bb9d5ecb3ca6c883f30f90ac /Eigen/src/Core/PlainObjectBase.h | |
parent | cfa0568ef7fc86f1cc0c18c8e36cdfd757523cc2 (diff) |
bug #1393: enable Matrix/Array explicit ctor from types with conversion operators (was ok with 3.2)
Diffstat (limited to 'Eigen/src/Core/PlainObjectBase.h')
-rw-r--r-- | Eigen/src/Core/PlainObjectBase.h | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/Eigen/src/Core/PlainObjectBase.h b/Eigen/src/Core/PlainObjectBase.h index 639fb92bf..77f4f6066 100644 --- a/Eigen/src/Core/PlainObjectBase.h +++ b/Eigen/src/Core/PlainObjectBase.h @@ -812,6 +812,13 @@ class PlainObjectBase : public internal::dense_xpr_base<Derived>::type this->_set_noalias(other); } + // Initialize an arbitrary matrix from an object convertible to the Derived type. + template<typename T> + EIGEN_DEVICE_FUNC + EIGEN_STRONG_INLINE void _init1(const Derived& other){ + this->_set_noalias(other); + } + // Initialize an arbitrary matrix from a generic Eigen expression template<typename T, typename OtherDerived> EIGEN_DEVICE_FUNC @@ -834,7 +841,7 @@ class PlainObjectBase : public internal::dense_xpr_base<Derived>::type this->derived() = r; } - // For fixed -size arrays: + // For fixed-size Array<Scalar,...> template<typename T> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void _init1(const Scalar& val0, @@ -846,6 +853,7 @@ class PlainObjectBase : public internal::dense_xpr_base<Derived>::type Base::setConstant(val0); } + // For fixed-size Array<Index,...> template<typename T> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void _init1(const Index& val0, |