OSDN Git Service

* doc/xml/manual/status_cxx2011.xml: Document aligned_union as
[pf3gnuchains/gcc-fork.git] / libstdc++-v3 / doc / html / manual / ext_containers.html
1 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2 <!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 23. HP/SGI Extensions</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    " /><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      runtime&#10;    , &#10;      library&#10;    " /><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="policy_data_structures_ack.html" title="Acknowledgments" /><link rel="next" href="bk01pt03ch23s02.html" title="Deprecated" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 23. HP/SGI Extensions</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="policy_data_structures_ack.html">Prev</a> </td><th width="60%" align="center">Part III. 
3   Extensions
4   
5 </th><td width="20%" align="right"> <a accesskey="n" href="bk01pt03ch23s02.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.containers"></a>Chapter 23. HP/SGI Extensions</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="ext_containers.html#manual.ext.containers.sgi">Backwards Compatibility</a></span></dt><dt><span class="section"><a href="bk01pt03ch23s02.html">Deprecated</a></span></dt></dl></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.ext.containers.sgi"></a>Backwards Compatibility</h2></div></div></div><p>A few extensions and nods to backwards-compatibility have
6     been made with containers.  Those dealing with older SGI-style
7     allocators are dealt with elsewhere.  The remaining ones all deal
8     with bits:
9     </p><p>The old pre-standard <code class="code">bit_vector</code> class is
10     present for backwards compatibility.  It is simply a typedef for
11     the <code class="code">vector&lt;bool&gt;</code> specialization.
12     </p><p>The <code class="code">bitset</code> class has a number of extensions, described in the
13    rest of this item.  First, we'll mention that this implementation of
14    <code class="code">bitset&lt;N&gt;</code> is specialized for cases where N number of
15    bits will fit into a single word of storage.  If your choice of N is
16    within that range (&lt;=32 on i686-pc-linux-gnu, for example), then all
17    of the operations will be faster.
18 </p><p>There are
19    versions of single-bit test, set, reset, and flip member functions which
20    do no range-checking.  If we call them member functions of an instantiation
21    of <code class="code">bitset&lt;N&gt;</code>, then their names and signatures are:
22 </p><pre class="programlisting">
23    bitset&lt;N&gt;&amp;   _Unchecked_set   (size_t pos);
24    bitset&lt;N&gt;&amp;   _Unchecked_set   (size_t pos, int val);
25    bitset&lt;N&gt;&amp;   _Unchecked_reset (size_t pos);
26    bitset&lt;N&gt;&amp;   _Unchecked_flip  (size_t pos);
27    bool         _Unchecked_test  (size_t pos);
28    </pre><p>Note that these may in fact be removed in the future, although we have
29    no present plans to do so (and there doesn't seem to be any immediate
30    reason to).
31 </p><p>The member function <code class="code">operator[]</code> on a const bitset returns
32    a bool, and for a non-const bitset returns a <code class="code">reference</code> (a
33    nested type).  No range-checking is done on the index argument, in keeping
34    with other containers' <code class="code">operator[]</code> requirements.
35 </p><p>Finally, two additional searching functions have been added.  They return
36    the index of the first "on" bit, and the index of the first
37    "on" bit that is after <code class="code">prev</code>, respectively:
38 </p><pre class="programlisting">
39    size_t _Find_first() const;
40    size_t _Find_next (size_t prev) const;</pre><p>The same caveat given for the _Unchecked_* functions applies here also.
41 </p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="policy_data_structures_ack.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="bk01pt03ch23s02.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Acknowledgments </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Deprecated</td></tr></table></div></body></html>