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
. *