在实现迭代器和 const_iterator 类 时避免代码重复的最佳实践

Best practice for avoiding code duplication while implementing iterator and const_iterator classes

在实施 iteratorconst_iterator 或类似的 class 对时,避免代码重复的最佳做法是什么?

这似乎是一个足够普遍的问题,需要一个规范的解决方案,但我没能找到专门针对该问题的文章。

我没有任何实现迭代器的经验,尽管我认为这与其他项目类似。重构公共代码等

正在查看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;
};