</p><divclass="itemizedlist"><ulclass="itemizedlist"style="list-style-type: disc; "><liclass="listitem"><p><codeclass="code">identity_element</code> for addition and multiplication.
</p></li><liclass="listitem"><p>Composition functors <codeclass="code">unary_function</code> and
<codeclass="code">binary_function</code>, and their helpers <codeclass="code">compose1</code>
and <codeclass="code">compose2</code>.
</p></li><liclass="listitem"><p><codeclass="code">select1st</code> and <codeclass="code">select2nd</code>, to strip pairs.
</p></li><liclass="listitem"><p><codeclass="code">project1st</code> and <codeclass="code">project2nd</code>. </p></li><liclass="listitem"><p>A set of functors/functions which always return the same result. They
are <codeclass="code">constant_void_fun</code>, <codeclass="code">constant_binary_fun</code>,
<codeclass="code">constant1</code>, and <codeclass="code">constant2</code>. </p></li><liclass="listitem"><p>The class <codeclass="code">subtractive_rng</code>. </p></li><liclass="listitem"><p>mem_fun adaptor helpers <codeclass="code">mem_fun1</code> and
<codeclass="code">mem_fun1_ref</code> are provided for backwards compatibility. </p></li></ul></div><p>
20.4.1 can use several different allocators; they are described on the
main extensions page.
</p><p>
20.4.3 is extended with a special version of
<codeclass="code">get_temporary_buffer</code> 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
</p><preclass="programlisting">
get_temporary_buffer<int>(5);
</pre><p>
you can also use
</p><preclass="programlisting">
get_temporary_buffer(5, (int*)0);
</pre><p>
A class <codeclass="code">temporary_buffer</code> is given in stl_tempbuf.h.
</p><p>
The specialized algorithms of section 20.4.4 are extended with