#include #include #include class my_old_iterator { public: my_old_iterator() : m_i(0) {} void advance() { ++m_i; } int current() { return m_i; } bool eof() { return m_i == 10; } private: int m_i; }; class adapted_iterator : public boost::iterator_adaptor< adapted_iterator, my_old_iterator, int, std::forward_iterator_tag> { public: }; int main() { adapted_iterator i, e; }