The <functional> header
    contains many additional functors
    and helper functions, extending section 20.3.  They are
    implemented in the file stl_function.h:
  
identity_element for addition and multiplication.
  
The functor identity, whose operator()
      returns the argument unchanged.
  
Composition functors unary_function and
      binary_function, and their helpers compose1
      and compose2.
    
select1st and select2nd, to strip pairs.
  
project1st and project2nd. 
A set of functors/functions which always return the same result.  They
      are constant_void_fun, constant_binary_fun,
      constant_unary_fun, constant0,
      constant1, and constant2. 
The class subtractive_rng. 
mem_fun adaptor helpers mem_fun1 and
      mem_fun1_ref are provided for backwards compatibility. 
20.4.1 can use several different allocators; they are described on the main extensions page.
  20.4.3 is extended with a special version of
  get_temporary_buffer taking a second argument.  The
  argument is a pointer, which is ignored, but can be used to specify
  the template type (instead of using explicit function template
  arguments like the standard version does).  That is, in addition to
get_temporary_buffer<int>(5);
you can also use
get_temporary_buffer(5, (int*)0);
  A class temporary_buffer is given in stl_tempbuf.h.
  The specialized algorithms of section 20.4.4 are extended with
  uninitialized_copy_n.