/// For some reason operator[] provided by iterator_facade returns a custom class that is convertible to reference
 /// We require our own reference because it is registered in iterator_traits
 reference operator[](difference_type d)       const { return memunit_advanced_ref(*this,d*sizeof(channel_t));}
    /**
       For some reason operator[] provided by iterator_facade returns
       a custom class that is convertible to reference.

       We require our own reference because it is registered in
       iterator_traits.
    */
    reference operator[] (difference_type d) const
    {
	return memunit_advanced_ref (*this, d * sizeof (sample_type));
    }