[PPL-devel] [GIT] ppl/ppl(sparse_matrices): Dense_Row: make iterator and const_iterator Assignable.
Marco Poletti
poletti.marco at gmail.com
Tue Mar 9 13:37:12 CET 2010
Module: ppl/ppl
Branch: sparse_matrices
Commit: c43588786d85464bc357116785cebebc5fbfc6c7
URL: http://www.cs.unipr.it/git/gitweb.cgi?p=ppl/ppl.git;a=commit;h=c43588786d85464bc357116785cebebc5fbfc6c7
Author: Marco Poletti <poletti.marco at gmail.com>
Date: Tue Mar 9 13:33:14 2010 +0100
Dense_Row: make iterator and const_iterator Assignable.
---
src/Dense_Row.defs.hh | 4 ++--
src/Dense_Row.inlines.hh | 30 +++++++++++++++---------------
2 files changed, 17 insertions(+), 17 deletions(-)
diff --git a/src/Dense_Row.defs.hh b/src/Dense_Row.defs.hh
index 23d3054..44decef 100644
--- a/src/Dense_Row.defs.hh
+++ b/src/Dense_Row.defs.hh
@@ -280,7 +280,7 @@ public:
bool OK() const;
private:
- Dense_Row& row;
+ Dense_Row* row;
dimension_type i;
};
@@ -305,7 +305,7 @@ public:
bool OK() const;
private:
- const Dense_Row& row;
+ const Dense_Row* row;
dimension_type i;
};
diff --git a/src/Dense_Row.inlines.hh b/src/Dense_Row.inlines.hh
index daf8664..7e766d7 100644
--- a/src/Dense_Row.inlines.hh
+++ b/src/Dense_Row.inlines.hh
@@ -246,25 +246,25 @@ Dense_Row::operator const Row&() const {
inline
Dense_Row::iterator::iterator(Dense_Row& row1,dimension_type i1)
- : row(row1), i(i1) {
+ : row(&row1), i(i1) {
PPL_ASSERT(OK());
}
inline Dense_Row::iterator::value_type
Dense_Row::iterator::operator*() {
- PPL_ASSERT(i < row.size());
- return value_type(i,row[i]);
+ PPL_ASSERT(i < row->size());
+ return value_type(i,(*row)[i]);
}
inline Dense_Row::iterator::const_type
Dense_Row::iterator::operator*() const {
- PPL_ASSERT(i < row.size());
- return const_type(i,row[i]);
+ PPL_ASSERT(i < row->size());
+ return const_type(i,(*row)[i]);
}
inline Dense_Row::iterator&
Dense_Row::iterator::operator++() {
- PPL_ASSERT(i < row.size());
+ PPL_ASSERT(i < row->size());
++i;
PPL_ASSERT(OK());
return *this;
@@ -294,7 +294,7 @@ Dense_Row::iterator::operator--(int) {
inline bool
Dense_Row::iterator::operator==(const iterator& x) const {
- return (&row == &(x.row)) && (i == x.i);
+ return (row == x.row) && (i == x.i);
}
inline bool
@@ -304,31 +304,31 @@ Dense_Row::iterator::operator!=(const iterator& x) const {
inline
Dense_Row::iterator::operator const_iterator() const {
- return const_iterator(row,i);
+ return const_iterator(*row,i);
}
inline bool
Dense_Row::iterator::OK() const {
// i can be equal to row.size() for past-the-end iterators
- return (i <= row.size());
+ return (i <= row->size());
}
inline
Dense_Row::const_iterator::const_iterator(const Dense_Row& row1,dimension_type i1)
- : row(row1), i(i1) {
+ : row(&row1), i(i1) {
PPL_ASSERT(OK());
}
inline Dense_Row::const_iterator::const_type
Dense_Row::const_iterator::operator*() const {
- PPL_ASSERT(i < row.size());
- return const_type(i,row[i]);
+ PPL_ASSERT(i < row->size());
+ return const_type(i,(*row)[i]);
}
inline Dense_Row::const_iterator&
Dense_Row::const_iterator::operator++() {
- PPL_ASSERT(i < row.size());
+ PPL_ASSERT(i < row->size());
++i;
PPL_ASSERT(OK());
return *this;
@@ -358,7 +358,7 @@ Dense_Row::const_iterator::operator--(int) {
inline bool
Dense_Row::const_iterator::operator==(const const_iterator& x) const {
- return (&row == &(x.row)) && (i == x.i);
+ return (row == x.row) && (i == x.i);
}
inline bool
@@ -369,7 +369,7 @@ Dense_Row::const_iterator::operator!=(const const_iterator& x) const {
inline bool
Dense_Row::const_iterator::OK() const {
// i can be equal to row.size() for past-the-end iterators
- return (i <= row.size());
+ return (i <= row->size());
}
} // namespace Parma_Polyhedra_Library
More information about the PPL-devel
mailing list