diff --git a/include/xlnt/worksheet/cell_iterator.hpp b/include/xlnt/worksheet/cell_iterator.hpp
index 64e5c9b2..b11818f6 100644
--- a/include/xlnt/worksheet/cell_iterator.hpp
+++ b/include/xlnt/worksheet/cell_iterator.hpp
@@ -89,7 +89,13 @@ public:
///
/// Dereferences this iterator to return the cell it points to.
///
- cell operator*();
+ reference operator*();
+
+ ///
+ /// Dereferences this iterator to return the cell it points to.
+ ///
+ const reference operator*() const;
+
///
/// Returns true if this iterator is equivalent to other.
@@ -207,6 +213,12 @@ public:
/// destructor for const_cell_iterator
///
~const_cell_iterator() = default;
+
+ ///
+ /// Dereferences this iterator to return the cell it points to.
+ ///
+ const reference operator*() const;
+
///
/// Dereferences this iterator to return the cell it points to.
///
diff --git a/source/worksheet/cell_iterator.cpp b/source/worksheet/cell_iterator.cpp
index 25aa7196..e4c334e9 100644
--- a/source/worksheet/cell_iterator.cpp
+++ b/source/worksheet/cell_iterator.cpp
@@ -265,14 +265,18 @@ const_cell_iterator const_cell_iterator::operator++(int)
return old;
}
-cell cell_iterator::operator*()
+cell_iterator::reference cell_iterator::operator*()
{
return ws_.cell(cursor_);
}
-const cell const_cell_iterator::operator*() const
+const cell_iterator::reference cell_iterator::operator*() const
{
return ws_.cell(cursor_);
}
+const const_cell_iterator::reference const_cell_iterator::operator*() const
+{
+ return ws_.cell(cursor_);
+}
} // namespace xlnt