VMS Help
CXXLSTD, Iterators, value_type

 *Conan The Librarian

 			   Standard C++	Library
 		 Copyright 1996, Rogue Wave Software, Inc.

 NAME

   value_type  -	Determine the type of value an iterator	points to.
   This	function is now obsolete.	 It is retained	in order to
   provide backward compatibility and support compilers that do not
   provide partial specialization.

 SYNOPSIS

   #include <iterator>

   template <class T, class Distance>
   inline T* value_type (const input_iterator<T,	Distance>&)

   template <class T, class Distance>
   inline T* value_type (const forward_iterator<T, Distance>&)

   template <class T, class Distance>
   inline T* value_type (const bidirectional_iterator<T,	Distance>&)

   template <class T, class Distance>
   inline T* value_type (const random_access_iterator<T,	Distance>&)

   template <class T>
   inline T* value_type (const T*)

 DESCRIPTION

   The value_type  function template returns a pointer to a default
   value of the type pointed to by an iterator.  Five overloaded
   versions	of this	function template	handle the four	basic
   iterator types and simple	arrays.	 Each of the first four take
   an iterator of	a specific type, and return the	value used to
   instantiate the iterator.  The fifth version takes and returns a T*
   in order to handle the case when an iterator is a simple pointer.

   This family of  function templates can be used to extract a value
   type from an iterator and subsequently use that	type to	create
   a local variable. Typically the	value_type functions are used
   like this:

   template <class Iterator>
   void foo(Iterator first, Iterator last)
   {
    __foo(begin,end,value_type(first));
   }

   template <class Iterator, class T>
   void __foo(Iterator first, Iterator last, T*>
   {
    T temp = *first;
      _
   }

   The auxiliary	function __foo extracts	a usable value type from the
   iterator and then puts	the type to work.

 SEE ALSO

   Other	iterator primitives:  distance_type, iterator_category,
   distance, advance

 STANDARDS CONFORMANCE
   ANSI X3J16/ISO WG21 Joint C++	Committee
  Close     Help