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">&=</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">&</span> <span class="keyword">operator</span> <span class="special">&=</span> <span class="special">(</span><span class="identifier">T</span><span class="special">&,</span> <span class="keyword">const</span> <span class="identifier">P</span><span class="special">&)</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">&=</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">&=</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">&</span> 143 <span class="keyword">operator</span> <span class="special">&=</span> 144 <span class="special">(</span><span class="identifier">T</span><span class="special">&,</span> <span class="keyword">const</span> <span class="identifier">P</span><span class="special">&)</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