Arm*_*yan 6 c++ class-design const code-duplication
在实现诸如iterator和/ const_iterator或类似的类对时避免代码重复的最佳实践是什么?
这似乎是一个普遍的问题,有一个规范的解决方案,但我没有找到任何专门的文章.
我没有任何实现迭代器的经验,尽管我认为这与其他项目类似。重构公共代码等
看看GNU libstdc++ 的实现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;
};
Run Code Online (Sandbox Code Playgroud)