diff options
Diffstat (limited to 'libstdc++-v3/docs/html/ext/sgiexts.html')
-rw-r--r-- | libstdc++-v3/docs/html/ext/sgiexts.html | 113 |
1 files changed, 62 insertions, 51 deletions
diff --git a/libstdc++-v3/docs/html/ext/sgiexts.html b/libstdc++-v3/docs/html/ext/sgiexts.html index 674ffacc766..08775cffd3e 100644 --- a/libstdc++-v3/docs/html/ext/sgiexts.html +++ b/libstdc++-v3/docs/html/ext/sgiexts.html @@ -1,12 +1,16 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"> -<html> +<?xml version="1.0" encoding="ISO-8859-1"?> +<!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" xml:lang="en" lang="en"> <head> - <meta name="AUTHOR" content="pme@gcc.gnu.org (Phil Edwards)"> - <meta name="KEYWORDS" content="libstdc++, libstdc++-v3, GCC, g++, STL, SGI"> - <meta name="DESCRIPTION" content="SGI extensions preserved in libstdc++-v3."> - <meta name="GENERATOR" content="vi and eight fingers"> + <meta name="AUTHOR" content="pme@gcc.gnu.org (Phil Edwards)" /> + <meta name="KEYWORDS" content="libstdc++, libstdc++-v3, GCC, g++, STL, SGI" /> + <meta name="DESCRIPTION" content="SGI extensions preserved in libstdc++-v3." /> + <meta name="GENERATOR" content="vi and eight fingers" /> <title>SGI extensions to the library in libstdc++-v3</title> -<link rel="StyleSheet" href="lib3styles.css"> +<link rel="StyleSheet" href="lib3styles.css" /> </head> <body> @@ -25,7 +29,7 @@ libstdc++-v3</a></h1> for a description). Not every chapter may have extensions, and the extensions may come and go. Also, this page is incomplete because the author is pressed for time. Check back often; the latest change was on - $Date: 2001/11/23 16:29:01 $ (UTC). + $Date: 2002/11/11 01:10:44 $ (UTC). </p> <p>Descriptions range from the scanty to the verbose. You should also check @@ -36,30 +40,33 @@ libstdc++-v3</a></h1> </p> <p>Back to the <a href="howto.html">libstdc++-v3 extensions</a>. +</p> <!-- ####################################################### --> -<hr> -<a name="ch20"><h3>Chapter 20</h3></a> +<hr /> +<h3><a name="ch20">Chapter 20</a></h3> <p>The <functional> header contains many additional functors and helper functions, extending section 20.3. They are implemented in the file stl_function.h: - <ul> - <li><code>identity_element</code> for addition and multiplication. * - <li>The functor <code>identity</code>, whose op() returns the argument - unchanged. * +</p> +<ul> + <li><code>identity_element</code> for addition and multiplication. * </li> + <li>The functor <code>identity</code>, whose <code>operator()</code> + returns the argument unchanged. * </li> <li>Composition functors <code>unary_function</code> and <code>binary_function</code>, and their helpers <code>compose1</code> - and <code>compose2</code>. * - <li><code>select1st</code> and <code>select2nd</code>, to strip pairs. * - <li><code>project1st</code> and <code>project2nd</code>. * + and <code>compose2</code>. * </li> + <li><code>select1st</code> and <code>select2nd</code>, to strip pairs. * </li> + <li><code>project1st</code> and <code>project2nd</code>. * </li> <li>A set of functors/functions which always return the same result. They - are <code>constant_void_fun, constant_binary_fun, constant_unary_fun, - constant0, constant1, and constant2. * - <li>The class <code>subtractive_rng</code>. * - <li>mem_fun adaptor helpers mem_fun1 and mem_fun1_ref are provided for - backwards compatibility. -</ul></p> + are <code>constant_void_fun</code>, <code>constant_binary_fun</code>, + <code>constant_unary_fun</code>, <code>constant0</code>, + <code>constant1</code>, and <code>constant2</code>. * </li> + <li>The class <code>subtractive_rng</code>. * </li> + <li>mem_fun adaptor helpers <code>mem_fun1</code> and + <code>mem_fun1_ref</code> are provided for backwards compatibility. </li> +</ul> <p>20.4.1 can use several different allocators; they are described on the main extensions page. </p> @@ -68,12 +75,12 @@ libstdc++-v3</a></h1> 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> get_temporary_buffer<int>(5);</pre> you can also use <pre> get_temporary_buffer(5, (int*)0);</pre> -</p> <p>A class <code>temporary_buffer</code> is given in stl_tempbuf.h. * </p> <p>The specialized algorithms of section 20.4.4 are extended with @@ -84,8 +91,8 @@ libstdc++-v3</a></h1> </p> -<hr> -<a name="ch23"><h3>Chapter 23</h3></a> +<hr /> +<h3><a name="ch23">Chapter 23</a></h3> <p>A few extensions and nods to backwards-compatibility have been made with containers. Those dealing with older SGI-style allocators are dealt with elsewhere. The remaining ones all deal with bits: @@ -105,18 +112,18 @@ libstdc++-v3</a></h1> versions of single-bit test, set, reset, and flip member functions which do no range-checking. If we call them member functions of an instantiation of "bitset<N>," then their names and signatures are: +</p> <pre> bitset<N>& _Unchecked_set (size_t pos); bitset<N>& _Unchecked_set (size_t pos, int val); bitset<N>& _Unchecked_reset (size_t pos); bitset<N>& _Unchecked_flip (size_t pos); bool _Unchecked_test (size_t pos);</pre> - Note that these may in fact be removed in the future, although we have +<p>Note that these may in fact be removed in the future, although we have no present plans to do so (and there doesn't seem to be any immediate reason to). </p> -<p> - The semantics of member function <code>operator[]</code> are not specified +<p>The semantics of member function <code>operator[]</code> are not specified in the C++ standard. A long-standing defect report calls for sensible obvious semantics, which are already implemented here: <code>op[]</code> on a const bitset returns a bool, and for a non-const bitset returns a @@ -128,30 +135,31 @@ libstdc++-v3</a></h1> <p>Finally, two additional searching functions have been added. They return the index of the first "on" bit, and the index of the first "on" bit that is after <code>prev</code>, respectively: +</p> <pre> size_t _Find_first() const; size_t _Find_next (size_t prev) const;</pre> - The same caveat given for the _Unchecked_* functions applies here also. +<p>The same caveat given for the _Unchecked_* functions applies here also. </p> <p>Return <a href="howto.html">to the main extensions page</a> or <a href="http://gcc.gnu.org/libstdc++/">to the homepage</a>. </p> -<hr> -<a name="ch24"><h3>Chapter 24</h3></a> +<hr /> +<h3><a name="ch24">Chapter 24</a></h3> <p>24.3.2 describes <code>struct iterator</code>, which didn't exist in the original HP STL implementation (the language wasn't rich enough at the time). For backwards compatibility, base classes are provided which declare the same nested typedefs: +</p> <ul> - <li>input_iterator - <li>output_iterator - <li>forward_iterator - <li>bidirectional_iterator - <li>random_access_iterator + <li>input_iterator</li> + <li>output_iterator</li> + <li>forward_iterator</li> + <li>bidirectional_iterator</li> + <li>random_access_iterator</li> </ul> -</p> <p>24.3.4 describes iterator operation <code>distance</code>, which takes two iterators and returns a result. It is extended by another signature which takes two iterators and a reference to a result. The result is @@ -162,50 +170,53 @@ libstdc++-v3</a></h1> </p> -<hr> -<a name="ch25"><h3>Chapter 25</h3></a> +<hr /> +<h3><a name="ch25">Chapter 25</a></h3> <p>25.1.6 (count, count_if) is extended with two more versions of count and count_if. The standard versions return their results. The additional signatures return void, but take a final parameter by reference to which they assign their results, e.g., +</p> <pre> void count (first, last, value, n);</pre> -</p> <p>25.2 (mutating algorithms) is extended with two families of signatures, random_sample and random_sample_n. </p> <p>25.2.1 (copy) is extended with +</p> <pre> copy_n (_InputIter first, _Size count, _OutputIter result);</pre> - which copies the first 'count' elements at 'first' into 'result'. +<p>which copies the first 'count' elements at 'first' into 'result'. </p> <p>25.3 (sorting 'n' heaps 'n' stuff) is extended with some helper predicates. Look in the doxygen-generated pages for notes on these. +</p> <ul> - <li><code>is_heap</code> tests whether or not a range is a heap. + <li><code>is_heap</code> tests whether or not a range is a heap.</li> <li><code>is_sorted</code> tests whether or not a range is sorted in - nondescending order. + nondescending order.</li> </ul> -</p> <p>25.3.8 (lexigraphical_compare) is extended with +</p> <pre> lexicographical_compare_3way(_InputIter1 first1, _InputIter1 last1, _InputIter2 first2, _InputIter2 last2)</pre> - which does... what? +<p>which does... what? </p> <p>Return <a href="howto.html">to the main extensions page</a> or <a href="http://gcc.gnu.org/libstdc++/">to the homepage</a>. </p> -<hr> -<a name="ch26"><h3>Chapter 26</h3></a> +<hr /> +<h3><a name="ch26">Chapter 26</a></h3> <p>26.4, the generalized numeric operations such as accumulate, are extended with the following functions: +</p> <pre> power (x, n); power (x, n, moniod_operation);</pre> - Returns, in FORTRAN syntax, "x ** n" where n>=0. In the +<p>Returns, in FORTRAN syntax, "x ** n" where n>=0. In the case of n == 0, returns the <a href="#ch20">identity element</a> for the monoid operation. The two-argument signature uses multiplication (for a true "power" implementation), but addition is supported as well. @@ -215,9 +226,9 @@ libstdc++-v3</a></h1> Coolest Name. It "assigns sequentially increasing values to a range. That is, it assigns value to *first, value + 1 to *(first + 1) and so on." Quoted from SGI documentation. +</p> <pre> void iota(_ForwardIter first, _ForwardIter last, _Tp value);</pre> -</p> <p>Return <a href="howto.html">to the main extensions page</a> or <a href="http://gcc.gnu.org/libstdc++/">to the homepage</a>. </p> @@ -225,7 +236,7 @@ libstdc++-v3</a></h1> <!-- ####################################################### --> -<hr> +<hr /> <p class="fineprint"><em> See <a href="../17_intro/license.html">license.html</a> for copying conditions. Comments and suggestions are welcome, and may be sent to |