cpp/iterator/iterator traits

is the type trait class that provides uniform interface to the properties of types. This makes it possible to implement algorithms only in terms of iterators.

The template can be specialized for user-defined iterators so that the information about the iterator can be retrieved even if the type does not provide the usual typedefs.

Specializations
This type trait may be specialized for user-provided types that may be used as iterators. The standard library provides partial specializations for pointer types, which makes it possible to use all iterator-based algorithms with raw pointers.

specialization member types
{{rrev|until=c++20|1=

specialization member types
}}