2012-08-29 06:44:10 +02:00
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2013-04-02 02:09:44 +02:00
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> < html xmlns = "http://www.w3.org/1999/xhtml" > < head > < meta http-equiv = "Content-Type" content = "text/html; charset=UTF-8" / > < title > Chapter 24. Utilities< / title > < meta name = "generator" content = "DocBook XSL-NS Stylesheets V1.78.1" / > < meta name = "keywords" content = "ISO C++, library" / > < meta name = "keywords" content = "ISO C++, runtime, library" / > < link rel = "home" href = "../index.html" title = "The GNU C++ Library" / > < link rel = "up" href = "extensions.html" title = "Part III. Extensions" / > < link rel = "prev" href = "ext_sgi.html" title = "Deprecated" / > < link rel = "next" href = "ext_algorithms.html" title = "Chapter 25. Algorithms" / > < / head > < body > < div class = "navheader" > < table width = "100%" summary = "Navigation header" > < tr > < th colspan = "3" align = "center" > Chapter 24. Utilities< / th > < / tr > < tr > < td width = "20%" align = "left" > < a accesskey = "p" href = "ext_sgi.html" > Prev< / a > < / td > < th width = "60%" align = "center" > Part III.
2009-04-16 01:31:04 +02:00
Extensions
2013-02-12 00:24:26 +01:00
< / th > < td width = "20%" align = "right" > < a accesskey = "n" href = "ext_algorithms.html" > Next< / a > < / td > < / tr > < / table > < hr / > < / div > < div class = "chapter" > < div class = "titlepage" > < div > < div > < h2 class = "title" > < a id = "manual.ext.util" > < / a > Chapter 24. Utilities< / h2 > < / div > < / div > < / div > < p >
2012-01-18 00:50:28 +01:00
The < code class = "filename" > < functional> < / code > header
contains many additional functors
2009-04-16 01:31:04 +02:00
and helper functions, extending section 20.3. They are
implemented in the file stl_function.h:
2013-02-12 00:24:26 +01:00
< / p > < div class = "itemizedlist" > < ul class = "itemizedlist" style = "list-style-type: disc; " > < li class = "listitem" > < p > < code class = "code" > identity_element< / code > for addition and multiplication.
2010-01-05 21:51:05 +01:00
< / p > < / li > < li class = "listitem" > < p > The functor < code class = "code" > identity< / code > , whose < code class = "code" > operator()< / code >
2012-01-18 00:50:28 +01:00
returns the argument unchanged.
2010-01-05 21:51:05 +01:00
< / p > < / li > < li class = "listitem" > < p > Composition functors < code class = "code" > unary_function< / code > and
2009-04-16 01:31:04 +02:00
< code class = "code" > binary_function< / code > , and their helpers < code class = "code" > compose1< / code >
2012-01-18 00:50:28 +01:00
and < code class = "code" > compose2< / code > .
< / p > < / li > < li class = "listitem" > < p > < code class = "code" > select1st< / code > and < code class = "code" > select2nd< / code > , to strip pairs.
< / p > < / li > < li class = "listitem" > < p > < code class = "code" > project1st< / code > and < code class = "code" > project2nd< / code > . < / p > < / li > < li class = "listitem" > < p > A set of functors/functions which always return the same result. They
2009-04-16 01:31:04 +02:00
are < code class = "code" > constant_void_fun< / code > , < code class = "code" > constant_binary_fun< / code > ,
< code class = "code" > constant_unary_fun< / code > , < code class = "code" > constant0< / code > ,
2012-01-18 00:50:28 +01:00
< code class = "code" > constant1< / code > , and < code class = "code" > constant2< / code > . < / p > < / li > < li class = "listitem" > < p > The class < code class = "code" > subtractive_rng< / code > . < / p > < / li > < li class = "listitem" > < p > mem_fun adaptor helpers < code class = "code" > mem_fun1< / code > and
2009-04-16 01:31:04 +02:00
< code class = "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
< code class = "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 > < pre class = "programlisting" >
get_temporary_buffer< int> (5);
< / pre > < p >
you can also use
< / p > < pre class = "programlisting" >
get_temporary_buffer(5, (int*)0);
< / pre > < p >
2012-01-18 00:50:28 +01:00
A class < code class = "code" > temporary_buffer< / code > is given in stl_tempbuf.h.
2009-04-16 01:31:04 +02:00
< / p > < p >
The specialized algorithms of section 20.4.4 are extended with
2012-01-18 00:50:28 +01:00
< code class = "code" > uninitialized_copy_n< / code > .
2013-02-12 00:24:26 +01:00
< / p > < / div > < div class = "navfooter" > < hr / > < table width = "100%" summary = "Navigation footer" > < tr > < td width = "40%" align = "left" > < a accesskey = "p" href = "ext_sgi.html" > Prev< / a > < / td > < td width = "20%" align = "center" > < a accesskey = "u" href = "extensions.html" > Up< / a > < / td > < td width = "40%" align = "right" > < a accesskey = "n" href = "ext_algorithms.html" > Next< / a > < / td > < / tr > < tr > < td width = "40%" align = "left" valign = "top" > Deprecated < / td > < td width = "20%" align = "center" > < a accesskey = "h" href = "../index.html" > Home< / a > < / td > < td width = "40%" align = "right" valign = "top" > Chapter 25. Algorithms< / td > < / tr > < / table > < / div > < / body > < / html >