cpp/experimental/ranges/iterator/iterator tags

Defines the category of an iterator. Each tag is an empty type and corresponds to one of the five iterator categories:
 * corresponds to.
 * corresponds to.
 * corresponds to.
 * corresponds to.
 * corresponds to ; it is not used and provided solely for backward compatiblity.

Iterator category tags carry information that can be used to select the most efficient algorithms for the specific requirement set that is implied by the category. However, concept-based overloading is preferred.

For every type,  must be defined to be an alias for the most specific category tag that describes the iterator's behavior.