__distance_type(3C++) - __distance_type(3C++)
Standard C++ Library Copyright 1998, Rogue Wave Software, Inc.
NAME__distance_type
- Determines the type of distance used by an iterator. This function
is now obsolete. It is retained in order to include backward compati‐
bility and support compilers that do not include partial specializa‐
tion.
SYNOPSIS
#include <iterator>
template <class Category, class T, class Distance,
class Pointer, class Reference>
inline Distance* __distance_type(const iterator<Category, T,
Distance, Pointer, Reference>&);
template <class T>
inline ptrdiff_t* __distance_type (const T*);
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 of these take an iterator of a partic‐
ular type and return a pointer to a default value of the differ‐
ence_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: __iterator_category, distance, advance
Rogue Wave Software 02 Apr 1998 __distance_type(3C++)