Standard C++ Library Class Reference
Description
The distance_type family of function templates return a pointer to a value that is of the same
type as that used to represent a distance between two iterators. The first four of these take an
iterator of a particular type and return a pointer to a default value of the distance_type for that
iterator. The T* form of the function returns ptrdiff_t*.
Generic algorithms use this function to create local variables of the correct type. The
distance_type functions are typically used like this:
template <class Iterator>
void foo(Iterator first, Iterator last)
{
__foo(begin,end,distance_type(first));
}
template <class Iterator, class Distance>
void __foo(Iterator first, Iterator last, Distance*>
{
Distance d = Distance();
distance(first,last,d);
_
}
The auxiliary function template allows the algorithm to extract a distance type from the first
iterator and then use that type to perform some useful work.
See Also
Other iterator primitives: value_type, iterator_category, distance, advance