If it makes a difference, just watch that your reverse iterators use that stupid +1 offset so that they behave like the STL. (A bad design decision IMO.)
This might be a good question to ask "C++ Standard Template Library" by Josuttis; it should define the requirements. There are a lot of typedefs you need and iterator traits, etc. ie, compile-time stuff in
addition to the runtime stuff like providing both operator++'s etc.