Imported Upstream version 1.51.0
[platform/upstream/boost.git] / libs / icl / doc / html / boost_icl / function_reference.html
1 <html>
2 <head>
3 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
4 <title>Function Reference</title>
5 <link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
6 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
7 <link rel="home" href="../index.html" title="Chapter&#160;1.&#160;Boost.Icl">
8 <link rel="up" href="../index.html" title="Chapter&#160;1.&#160;Boost.Icl">
9 <link rel="prev" href="implementation/inplace_and_infix_operators.html" title="Inplace and infix operators">
10 <link rel="next" href="function_reference/segmentational_fineness.html" title="Segmentational Fineness">
11 </head>
12 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
13 <table cellpadding="2" width="100%"><tr>
14 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
15 <td align="center"><a href="../../../../../index.html">Home</a></td>
16 <td align="center"><a href="../../../../libraries.htm">Libraries</a></td>
17 <td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
18 <td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
19 <td align="center"><a href="../../../../../more/index.htm">More</a></td>
20 </tr></table>
21 <hr>
22 <div class="spirit-nav">
23 <a accesskey="p" href="implementation/inplace_and_infix_operators.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="function_reference/segmentational_fineness.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
24 </div>
25 <div class="section boost_icl_function_reference" lang="en">
26 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
27 <a name="boost_icl.function_reference"></a><a class="link" href="function_reference.html" title="Function Reference">Function Reference</a>
28 </h2></div></div></div>
29 <div class="toc"><dl>
30 <dt><span class="section"><a href="function_reference.html#boost_icl.function_reference.overload_tables">Overload
31       tables</a></span></dt>
32 <dt><span class="section"><a href="function_reference/segmentational_fineness.html">Segmentational
33       Fineness</a></span></dt>
34 <dt><span class="section"><a href="function_reference/key_types.html">Key Types</a></span></dt>
35 <dt><span class="section"><a href="function_reference/construct__copy__destruct.html">Construct,
36       copy, destruct</a></span></dt>
37 <dt><span class="section"><a href="function_reference/containedness.html">Containedness</a></span></dt>
38 <dt><span class="section"><a href="function_reference/equivalences_and_orderings.html">Equivalences
39       and Orderings</a></span></dt>
40 <dt><span class="section"><a href="function_reference/size.html">Size</a></span></dt>
41 <dt><span class="section"><a href="function_reference/range.html">Range</a></span></dt>
42 <dt><span class="section"><a href="function_reference/selection.html">Selection</a></span></dt>
43 <dt><span class="section"><a href="function_reference/addition.html">Addition</a></span></dt>
44 <dt><span class="section"><a href="function_reference/subtraction.html">Subtraction</a></span></dt>
45 <dt><span class="section"><a href="function_reference/insertion.html">Insertion</a></span></dt>
46 <dt><span class="section"><a href="function_reference/erasure.html">Erasure</a></span></dt>
47 <dt><span class="section"><a href="function_reference/intersection.html">Intersection</a></span></dt>
48 <dt><span class="section"><a href="function_reference/symmetric_difference.html">Symmetric
49       Difference</a></span></dt>
50 <dt><span class="section"><a href="function_reference/iterator_related.html">Iterator
51       related</a></span></dt>
52 <dt><span class="section"><a href="function_reference/element_iteration.html">Element
53       iteration</a></span></dt>
54 <dt><span class="section"><a href="function_reference/streaming__conversion.html">Streaming,
55       conversion</a></span></dt>
56 <dt><span class="section"><a href="function_reference/interval_construction.html">Interval
57       Construction</a></span></dt>
58 <dt><span class="section"><a href="function_reference/additional_interval_orderings.html">Additional
59       Interval Orderings</a></span></dt>
60 <dt><span class="section"><a href="function_reference/miscellaneous_interval_functions.html">Miscellaneous
61       Interval Functions</a></span></dt>
62 </dl></div>
63 <p>
64       Section <a class="link" href="interface/function_synopsis.html" title="Function Synopsis">Function Synopsis</a>
65       above gave an overview of the polymorphic functions of the icl. This is what
66       you will need to find the desired possibilities to combine icl functions and
67       objects most of the time. The functions and overloads that you intuitively
68       expect should be provided, so you won't need to refer to the documentation
69       very often.
70     </p>
71 <p>
72       If you are interested
73     </p>
74 <div class="itemizedlist"><ul type="disc">
75 <li>
76         in the <span class="emphasis"><em><span class="bold"><strong>specific design of the function overloads</strong></span></em></span>,
77       </li>
78 <li>
79         in <span class="emphasis"><em><span class="bold"><strong>complexity characteristics</strong></span></em></span>
80         for certain overloads
81       </li>
82 <li>
83         or if the compiler <span class="emphasis"><em><span class="bold"><strong>refuses to resolve</strong></span></em></span>
84         specific function application you want to use,
85       </li>
86 </ul></div>
87 <p>
88       refer to this section that describes the polymorphic function families of the
89       icl in detail.
90     </p>
91 <a name="boost_icl.function_reference.placeholders"></a><h6>
92 <a name="id1168358"></a>
93       <a class="link" href="function_reference.html#boost_icl.function_reference.placeholders">Placeholders</a>
94     </h6>
95 <p>
96       For a concise representation the same <a class="link" href="interface/function_synopsis.html#element_type">placeholders</a>
97       will be used that have been introduced in section <a class="link" href="interface/function_synopsis.html" title="Function Synopsis">Function
98       Synopsis</a>.
99     </p>
100 <a name="boost_icl.function_reference.more_specific_function_documentation"></a><h6>
101 <a name="id1168386"></a>
102       <a class="link" href="function_reference.html#boost_icl.function_reference.more_specific_function_documentation">More
103       specific function documentation</a>
104     </h6>
105 <p>
106       This section covers the most important polymorphical and namespace global functions
107       of the <span class="bold"><strong>icl</strong></span>. More specific functions can be
108       looked up in the doxygen generated <a class="link" href="../interval_container_library_reference.html" title="Interval Container Library Reference">reference
109       documentation</a>.
110     </p>
111 <div class="section boost_icl_function_reference_overload_tables" lang="en">
112 <div class="titlepage"><div><div><h3 class="title">
113 <a name="boost_icl.function_reference.overload_tables"></a><a class="link" href="function_reference.html#boost_icl.function_reference.overload_tables" title="Overload tables">Overload
114       tables</a>
115 </h3></div></div></div>
116 <p>
117         Many of the <span class="bold"><strong>icl's</strong></span> functions are overloaded
118         for elements, segments, element and interval containers. But not all type
119         combinations are provided. Also the admissible type combinations are different
120         for different functions and operations. To concisely represent the overloads
121         that can be used we use synoptical tables that contain possible type combinations
122         for an operation. These are called <span class="emphasis"><em><span class="bold"><strong>overload
123         tables</strong></span></em></span>. As an example the overload tables for the inplace
124         intersection <code class="computeroutput"><span class="keyword">operator</span> <span class="special">&amp;=</span></code>
125         are given:
126       </p>
127 <p>
128         
129 </p>
130 <pre class="programlisting"><span class="comment">// overload tables for
131 </span><span class="identifier">T</span><span class="special">&amp;</span> <span class="keyword">operator</span> <span class="special">&amp;=</span> <span class="special">(</span><span class="identifier">T</span><span class="special">&amp;,</span> <span class="keyword">const</span> <span class="identifier">P</span><span class="special">&amp;)</span>
132
133 <span class="identifier">element</span> <span class="identifier">containers</span><span class="special">:</span>     <span class="identifier">interval</span> <span class="identifier">containers</span><span class="special">:</span>  
134 <span class="special">&amp;=</span> <span class="special">|</span> <span class="identifier">e</span> <span class="identifier">b</span> <span class="identifier">s</span> <span class="identifier">m</span>            <span class="special">&amp;=</span> <span class="special">|</span> <span class="identifier">e</span> <span class="identifier">i</span> <span class="identifier">b</span> <span class="identifier">p</span> <span class="identifier">S</span> <span class="identifier">M</span>    
135 <span class="special">---+--------</span>            <span class="special">---+------------</span>    
136 <span class="identifier">s</span>  <span class="special">|</span> <span class="identifier">s</span>   <span class="identifier">s</span>              <span class="identifier">S</span>  <span class="special">|</span> <span class="identifier">S</span> <span class="identifier">S</span>     <span class="identifier">S</span>       
137 <span class="identifier">m</span>  <span class="special">|</span> <span class="identifier">m</span> <span class="identifier">m</span> <span class="identifier">m</span> <span class="identifier">m</span>            <span class="identifier">M</span>  <span class="special">|</span> <span class="identifier">M</span> <span class="identifier">M</span> <span class="identifier">M</span> <span class="identifier">M</span> <span class="identifier">M</span> <span class="identifier">M</span>    
138 </pre>
139 <p>
140       </p>
141 <p>
142         For the binary <code class="computeroutput"><span class="identifier">T</span><span class="special">&amp;</span>
143         <span class="keyword">operator</span> <span class="special">&amp;=</span>
144         <span class="special">(</span><span class="identifier">T</span><span class="special">&amp;,</span> <span class="keyword">const</span> <span class="identifier">P</span><span class="special">&amp;)</span></code>
145         there are two different tables for the overloads of element and interval
146         containers. The first argument type <code class="computeroutput"><span class="identifier">T</span></code>
147         is displayed as row headers of the tables. The second argument type <code class="computeroutput"><span class="identifier">P</span></code> is displayed as column headers of the
148         tables. If a combination of <code class="computeroutput"><span class="identifier">T</span></code>
149         and <code class="computeroutput"><span class="identifier">P</span></code> is admissible the related
150         cell of the table is non empty. It displays the result type of the operation.
151         In this example the result type is always equal to the first argument.
152       </p>
153 <p>
154         The possible types that can be instantiated for <code class="computeroutput"><span class="identifier">T</span></code>
155         and <code class="computeroutput"><span class="identifier">P</span></code> are element, interval
156         and container types abbreviated by placeholders that are defined <a class="link" href="interface/function_synopsis.html" title="Function Synopsis">here</a>
157         and can be summarized as
158       </p>
159 <p>
160         <a class="link" href="interface/function_synopsis.html#itl_set_type"><span class="bold"><strong>s</strong></span></a> :
161         element set, <a class="link" href="interface/function_synopsis.html#interval_set_types"><span class="bold"><strong>S</strong></span></a>
162         : interval sets, <a class="link" href="interface/function_synopsis.html#element_type"><span class="bold"><strong>e</strong></span></a>
163         : elements, <a class="link" href="interface/function_synopsis.html#interval_type"><span class="bold"><strong>i</strong></span></a>
164         : intervals<br> <a class="link" href="interface/function_synopsis.html#itl_map_type"><span class="bold"><strong>m</strong></span></a>:element
165         map, <a class="link" href="interface/function_synopsis.html#interval_map_types"><span class="bold"><strong>M</strong></span></a>:interval
166         maps, <a class="link" href="interface/function_synopsis.html#element_mapping_type"><span class="bold"><strong>b</strong></span></a>:element-value
167         pairs, <a class="link" href="interface/function_synopsis.html#interval_mapping_type"><span class="bold"><strong>p</strong></span></a>:interval-value
168         pairs
169       </p>
170 </div>
171 </div>
172 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
173 <td align="left"></td>
174 <td align="right"><div class="copyright-footer">Copyright &#169; 2007 -2010 Joachim Faulhaber<br>Copyright &#169; 1999 -2006 Cortex Software GmbH<p>
175         Distributed under the Boost Software License, Version 1.0. (See accompanying
176         file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
177       </p>
178 </div></td>
179 </tr></table>
180 <hr>
181 <div class="spirit-nav">
182 <a accesskey="p" href="implementation/inplace_and_infix_operators.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="function_reference/segmentational_fineness.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
183 </div>
184 </body>
185 </html>