What are the best practices to avoid code duplication when implementing class pairs such as iterator
and const_iterator
or similar?
This seems like a common enough problem to have a canonical solution but I have failed to find any articles dedicated to that.
I don't have any experience with implementing iterators, although I think this is similar to other projects. Refactor common code, etc.
Looking at GNU libstdc++'s implementation of std::vector::iterator
#include <bits/stl_iterator_base_funcs.h>
// ...
template ... class vector : ... {
typedef __gnu_cxx::__normal_iterator<pointer, vector> iterator;
typedef __gnu_cxx::__normal_iterator<const_pointer, vector> const_iterator;
};
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With