diff --git a/include/xlnt/worksheet/range_iterator.hpp b/include/xlnt/worksheet/range_iterator.hpp
index 351e257f..5e942f73 100644
--- a/include/xlnt/worksheet/range_iterator.hpp
+++ b/include/xlnt/worksheet/range_iterator.hpp
@@ -59,20 +59,35 @@ public:
const range_reference &bounds, major_order order, bool skip_null);
///
- /// Copy constructor.
+ /// Default copy constructor.
///
- range_iterator(const range_iterator &other);
-
- ///
- /// Dereference the iterator to return a column or row.
- ///
- cell_vector operator*() const;
+ range_iterator(const range_iterator &) = default;
///
/// Default assignment operator.
///
range_iterator &operator=(const range_iterator &) = default;
+ ///
+ /// Default move constructor.
+ ///
+ range_iterator(range_iterator &&) = default;
+
+ ///
+ /// Default move assignment operator.
+ ///
+ range_iterator &operator=(range_iterator &&) = default;
+
+ ///
+ /// Default destructor
+ ///
+ ~range_iterator() = default;
+
+ ///
+ /// Dereference the iterator to return a column or row.
+ ///
+ cell_vector operator*() const;
+
///
/// Returns true if this iterator is equivalent to other.
///
@@ -154,20 +169,35 @@ public:
const range_reference &bounds, major_order order, bool skip_null);
///
- /// Copy constructor.
+ /// Default copy constructor.
///
- const_range_iterator(const const_range_iterator &other);
-
- ///
- /// Dereferennce the iterator to return the current column/row.
- ///
- const cell_vector operator*() const;
+ const_range_iterator(const const_range_iterator &) = default;
///
/// Default assignment operator.
///
const_range_iterator &operator=(const const_range_iterator &) = default;
+ ///
+ /// Default move constructor.
+ ///
+ const_range_iterator(const_range_iterator &&) = default;
+
+ ///
+ /// Default move assignment operator.
+ ///
+ const_range_iterator &operator=(const_range_iterator &&) = default;
+
+ ///
+ /// Default destructor
+ ///
+ ~const_range_iterator() = default;
+
+ ///
+ /// Dereferennce the iterator to return the current column/row.
+ ///
+ const cell_vector operator*() const;
+
///
/// Returns true if this iterator is equivalent to other.
///
diff --git a/source/worksheet/range_iterator.cpp b/source/worksheet/range_iterator.cpp
index 2da73d5c..57208d26 100644
--- a/source/worksheet/range_iterator.cpp
+++ b/source/worksheet/range_iterator.cpp
@@ -47,11 +47,6 @@ range_iterator::range_iterator(worksheet &ws, const cell_reference &cursor,
}
}
-range_iterator::range_iterator(const range_iterator &other)
-{
- *this = other;
-}
-
bool range_iterator::operator==(const range_iterator &other) const
{
return ws_ == other.ws_
@@ -168,11 +163,6 @@ const_range_iterator::const_range_iterator(const worksheet &ws, const cell_refer
}
}
-const_range_iterator::const_range_iterator(const const_range_iterator &other)
-{
- *this = other;
-}
-
bool const_range_iterator::operator==(const const_range_iterator &other) const
{
return ws_ == other.ws_