
David Abrahams wrote:
Huh?
CategoryOrTraversal
Now we have to determine which iterator traversal concept our node_iterator is going to model. Singly-linked lists only have forward links, so our iterator can't can't be a bidirectional traversal iterator. Our iterator should be able to make multiple passes over the same linked list (unlike, say, an istream_iterator which consumes the stream it traverses), so it must be a forward traversal iterator. Therefore, we'll pass boost::forward_traversal_tag in this position [1].
[1] iterator_facade also supports old-style category tags, so we could have passed std::forward_iterator_tag here; either way, the resulting iterator's iterator_category will end up being std::forward_iterator_tag.
What am I missing?
I am obviously blind and brain dead. Apologies for the noise. Angus