Listing 5: <iterator>, part 3


        //  TEMPLATE  FUNCTION  value_type
template<class  T,  class  Dist>  inline
    T  *value_type(const  input_iterator<T,  Dist>&)
    {return  ((T  *)0);  }
template<class  T,  class  Dist>  inline
    T  *value_type(const  forward_iterator<T,  Dist>&)
    {return  ((T  *)0);  }
template<class  T,  class  Dist>  inline
    T  *value_type(const  bidirectional_iterator<T,  Dist>&)
    {return  ((T  *)0);  }
template<class  T,  class  Dist>  inline
    T  *value_type(const  random_access_iterator<T,  Dist>&)
    {return  ((T  *)0);  }
template<class  T>  inline
    T  *value_type(const  T  *)
    {return  ((T  *)0);  }

        //  TEMPLATE  FUNCTION  distance_type
template<class  T,  class  Dist>  inline
    Dist  *distance_type(const  input_iterator<T,  Dist>&)
    {return  ((Dist  *)0);  }
template<class  T,  class  Dist>  inline
    Dist  *distance_type(const  forward_iterator<T,  Dist>&)
    {return  ((Dist  *)0);  }
template<class  T,  class  Dist>  inline
    Dist  *distance_type(const  bidirectional_iterator<T,  Dist>&)
    {return  ((Dist  *)0);  }
template<class  T,  class  Dist>  inline
    Dist  *distance_type(const  random_access_iterator<T,  Dist>&)
    {return  ((Dist  *)0);  }
template<class  T>  inline
    ptrdiff_t  *distance_type(const  T  *)
    {return  ((ptrdiff_t  *)0);  }
//End of File