Como a categoria de iterador em C ++ funciona?

Tentei entender a implementação do iterador e, enquanto brincava com a fonte, vi esta declaração:

typedef output_iterator_tag iterator_category;

Eu não entendo como esse typedef funciona dentro da classe? Qual é o efeito colateral que isso proporciona? Alguém pode me orientar sobre isso?

questionAnswers(2)

yourAnswerToTheQuestion