• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<html>
2<head>
3<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
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.79.1">
7<link rel="home" href="../index.html" title="Chapter 1. Boost.Icl">
8<link rel="up" href="../index.html" title="Chapter 1. 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">
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 class="toc">
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 class="itemizedlist" style="list-style-type: disc; ">
75<li class="listitem">
76          in the <span class="emphasis"><em><span class="bold"><strong>specific design of the function
77          overloads</strong></span></em></span>,
78        </li>
79<li class="listitem">
80          in <span class="emphasis"><em><span class="bold"><strong>complexity characteristics</strong></span></em></span>
81          for certain overloads
82        </li>
83<li class="listitem">
84          or if the compiler <span class="emphasis"><em><span class="bold"><strong>refuses to resolve</strong></span></em></span>
85          specific function application you want to use,
86        </li>
87</ul></div>
88<p>
89      refer to this section that describes the polymorphic function families of the
90      icl in detail.
91    </p>
92<h6>
93<a name="boost_icl.function_reference.h0"></a>
94      <span class="phrase"><a name="boost_icl.function_reference.placeholders"></a></span><a class="link" href="function_reference.html#boost_icl.function_reference.placeholders">Placeholders</a>
95    </h6>
96<p>
97      For a concise representation the same <a class="link" href="interface/function_synopsis.html#element_type">placeholders</a>
98      will be used that have been introduced in section <a class="link" href="interface/function_synopsis.html" title="Function Synopsis">Function
99      Synopsis</a>.
100    </p>
101<h6>
102<a name="boost_icl.function_reference.h1"></a>
103      <span class="phrase"><a name="boost_icl.function_reference.more_specific_function_documentation"></a></span><a class="link" href="function_reference.html#boost_icl.function_reference.more_specific_function_documentation">More
104      specific function documentation</a>
105    </h6>
106<p>
107      This section covers the most important polymorphic and namespace global functions
108      of the <span class="bold"><strong>icl</strong></span>. More specific functions can be
109      looked up in the doxygen generated <a class="link" href="../interval_container_library_reference.html" title="Interval Container Library Reference">reference
110      documentation</a>.
111    </p>
112<div class="section">
113<div class="titlepage"><div><div><h3 class="title">
114<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
115      tables</a>
116</h3></div></div></div>
117<p>
118        Many of the <span class="bold"><strong>icl's</strong></span> functions are overloaded
119        for elements, segments, element and interval containers. But not all type
120        combinations are provided. Also the admissible type combinations are different
121        for different functions and operations. To concisely represent the overloads
122        that can be used we use synoptical tables that contain possible type combinations
123        for an operation. These are called <span class="emphasis"><em><span class="bold"><strong>overload
124        tables</strong></span></em></span>. As an example the overload tables for the inplace
125        intersection <code class="computeroutput"><span class="keyword">operator</span> <span class="special">&amp;=</span></code>
126        are given:
127      </p>
128<p>
129</p>
130<pre class="programlisting"><span class="comment">// overload tables for</span>
131<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 © 2007-2010 Joachim
175      Faulhaber<br>Copyright © 1999-2006 Cortex Software
176      GmbH<p>
177        Distributed under the Boost Software License, Version 1.0. (See accompanying
178        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>)
179      </p>
180</div></td>
181</tr></table>
182<hr>
183<div class="spirit-nav">
184<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>
185</div>
186</body>
187</html>
188