aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/SparseCore/SparseCompressedBase.h
diff options
context:
space:
mode:
authorGravatar Gael Guennebaud <g.gael@free.fr>2015-10-12 09:49:05 +0200
committerGravatar Gael Guennebaud <g.gael@free.fr>2015-10-12 09:49:05 +0200
commit6407e367ee20b626355fe4c5567d1941d1b3fc55 (patch)
treec5ba41a7436ddbfe9be7c86f4c911eda5ef824b0 /Eigen/src/SparseCore/SparseCompressedBase.h
parent63e29e7765825f02ee7a1d6d24a82b2beb4bb924 (diff)
Add missing epxlicit keyword, and fix regression in DynamicSparseMatrix
Diffstat (limited to 'Eigen/src/SparseCore/SparseCompressedBase.h')
-rw-r--r--Eigen/src/SparseCore/SparseCompressedBase.h20
1 files changed, 17 insertions, 3 deletions
diff --git a/Eigen/src/SparseCore/SparseCompressedBase.h b/Eigen/src/SparseCore/SparseCompressedBase.h
index 97ca44761..c8a2705f9 100644
--- a/Eigen/src/SparseCore/SparseCompressedBase.h
+++ b/Eigen/src/SparseCore/SparseCompressedBase.h
@@ -120,12 +120,18 @@ class SparseCompressedBase<Derived>::InnerIterator
}
}
- InnerIterator(const SparseCompressedBase& mat)
+ explicit InnerIterator(const SparseCompressedBase& mat)
: m_values(mat.valuePtr()), m_indices(mat.innerIndexPtr()), m_outer(0), m_id(0), m_end(mat.nonZeros())
{
EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived);
}
+ explicit InnerIterator(const internal::CompressedStorage<Scalar,StorageIndex>& data)
+ : m_values(&data.value(0)), m_indices(&data.index(0)), m_outer(0), m_id(0), m_end(data.size())
+ {
+ EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived);
+ }
+
inline InnerIterator& operator++() { m_id++; return *this; }
inline const Scalar& value() const { return m_values[m_id]; }
@@ -173,9 +179,17 @@ class SparseCompressedBase<Derived>::ReverseInnerIterator
}
}
- ReverseInnerIterator(const SparseCompressedBase& mat)
+ explicit ReverseInnerIterator(const SparseCompressedBase& mat)
: m_values(mat.valuePtr()), m_indices(mat.innerIndexPtr()), m_outer(0), m_start(0), m_id(mat.nonZeros())
- {}
+ {
+ EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived);
+ }
+
+ explicit ReverseInnerIterator(const internal::CompressedStorage<Scalar,StorageIndex>& data)
+ : m_values(&data.value(0)), m_indices(&data.index(0)), m_outer(0), m_start(0), m_id(data.size())
+ {
+ EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived);
+ }
inline ReverseInnerIterator& operator--() { --m_id; return *this; }