On Sun, Mar 11, 2012 at 8:27 PM, John M. Dlugosz <mpbecey7gu@snkmail.com> wrote:
What is a good way to create both an iterator and a const iterator while only having to specify all my custom behavior once?

Maybe template your iterator on the base iterator, and dispatching when necessary depending on whether that base iterator is the const iterator or the mutable iterator? E.g.,

template< class Base >
struct my_iterator
    : boost::iterator_adaptor< Base >
{ };

typedef my_iterator< base_iterator > iterator;
typedef my_iterator< base_const_iterator > const_iterator;

HTH,

- Jeff