// ITERATOR TAGS
struct input_iterator_tag {};
struct output_iterator_tag {};
struct forward_iterator_tag {};
struct bidirectional_iterator_tag {};
struct random_access_iterator_tag {};
// TEMPLATE FUNCTION iterator_category
template<class T, class Dist> inline
input_iterator_tag iterator_category(
const input_iterator<T, Dist>&)
{input_iterator_tag x;
return (x); }
inline output_iterator_tag iterator_category(
const output_iterator&)
{output_iterator_tag x;
return (x); }
template<class T, class Dist> inline
forward_iterator_tag iterator_category(
const forward_iterator<T, Dist>&)
{forward_iterator_tag x;
return (x); }
template<class T, class Dist> inline
bidirectional_iterator_tag iterator_category(
const bidirectional_iterator<T, Dist>&)
{bidirectional_iterator_tag x;
return (x); }
template<class T, class Dist> inline
random_access_iterator_tag iterator_category(
const random_access_iterator<T, Dist>&)
{random_access_iterator_tag x;
return (x); }
template<class T> inline
random_access_iterator_tag iterator_category(const T *)
{random_access_iterator_tag x;
return (x); }
//End of File