 correct (though trivial)
    implementation of the core operations that must be defined in order for
    the iterator helpers to "fill in" the rest of the iterator
    operations.</p>

    <blockquote>
<pre>
template &lt;class T, class R, class P&gt;
struct test_iter
  : public boost::random_access_iterator_helper&lt;
     test_iter&lt;T,R,P&gt;, T, std::ptrdiff_t, P, R&gt;
{
  typedef test_iter self;
  typedef R Reference;
  typedef std::ptrdiff_t Distance;

public:
  explicit test_iter(T* i =0);
  test_i