|
Boost-Commit : |
Subject: [Boost-commit] svn:boost r68096 - in branches/release/libs/icl: . doc doc/html doc/html/header/boost/icl example/large_bitset_ test test/test_doc_code_
From: afojgo_at_[hidden]
Date: 2011-01-13 07:43:16
Author: jofaber
Date: 2011-01-13 07:43:05 EST (Thu, 13 Jan 2011)
New Revision: 68096
URL: http://svn.boost.org/trac/boost/changeset/68096
Log:
Merged corrections of documentation, and some adapter code for gcc-3.4.4.
Removed:
branches/release/libs/icl/doc/html/boostbook.css
Properties modified:
branches/release/libs/icl/ (props changed)
branches/release/libs/icl/doc/ (props changed)
branches/release/libs/icl/doc/html/ (props changed)
branches/release/libs/icl/doc/html/header/boost/icl/ (props changed)
branches/release/libs/icl/test/ (props changed)
branches/release/libs/icl/test/test_doc_code_/ (props changed)
Text files modified:
branches/release/libs/icl/doc/html/index.html | 183 +++++++++++++++++++++++-----
branches/release/libs/icl/doc/icl.qbk | 2
branches/release/libs/icl/doc/introduction.qbk | 46 +++++-
branches/release/libs/icl/example/large_bitset_/large_bitset.hpp | 5
branches/release/libs/icl/test/test_functions.hpp | 8 +
branches/release/libs/icl/test/test_icl_map.hpp | 33 ++++
branches/release/libs/icl/test/test_icl_quantifier_shared.hpp | 118 ++++++++++++++----
branches/release/libs/icl/test/test_interval_map_shared.hpp | 253 ++++++++++++++++++++++++++++++++-------
branches/release/libs/icl/test/test_interval_quantifier_shared.hpp | 121 +++++++++++++++---
branches/release/libs/icl/test/test_interval_set_shared.hpp | 31 ++++
10 files changed, 655 insertions(+), 145 deletions(-)
Deleted: branches/release/libs/icl/doc/html/boostbook.css
==============================================================================
--- branches/release/libs/icl/doc/html/boostbook.css 2011-01-13 07:43:05 EST (Thu, 13 Jan 2011)
+++ (empty file)
@@ -1,582 +0,0 @@
-/*=============================================================================
- Copyright (c) 2004 Joel de Guzman
- http://spirit.sourceforge.net/
-
- Use, modification and distribution is subject to the Boost Software
- License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
- http://www.boost.org/LICENSE_1_0.txt)
-=============================================================================*/
-
-/*=============================================================================
- Body defaults
-=============================================================================*/
-
- body
- {
- margin: 1em;
- font-family: sans-serif;
- }
-
-/*=============================================================================
- Paragraphs
-=============================================================================*/
-
- p
- {
- text-align: left;
- font-size: 10pt;
- line-height: 1.15;
- }
-
-/*=============================================================================
- Program listings
-=============================================================================*/
-
- /* Code on paragraphs */
- p tt.computeroutput
- {
- font-size: 10pt;
- }
-
- pre.synopsis
- {
- font-size: 10pt;
- margin: 1pc 4% 0pc 4%;
- padding: 0.5pc 0.5pc 0.5pc 0.5pc;
- }
-
- .programlisting,
- .screen
- {
- font-size: 10pt;
- display: block;
- margin: 1pc 4% 0pc 4%;
- padding: 0.5pc 0.5pc 0.5pc 0.5pc;
- }
-
- /* Program listings in tables don't get borders */
- td .programlisting,
- td .screen
- {
- margin: 0pc 0pc 0pc 0pc;
- padding: 0pc 0pc 0pc 0pc;
- }
-
-/*=============================================================================
- Headings
-=============================================================================*/
-
- h1, h2, h3, h4, h5, h6
- {
- text-align: left;
- margin: 1em 0em 0.5em 0em;
- font-weight: bold;
- }
-
- h1 { font: 140% }
- h2 { font: bold 140% }
- h3 { font: bold 130% }
- h4 { font: bold 120% }
- h5 { font: italic 110% }
- h6 { font: italic 100% }
-
- /* Top page titles */
- title,
- h1.title,
- h2.title
- h3.title,
- h4.title,
- h5.title,
- h6.title,
- .refentrytitle
- {
- font-weight: bold;
- margin-bottom: 1pc;
- }
-
- h1.title { font-size: 140% }
- h2.title { font-size: 140% }
- h3.title { font-size: 130% }
- h4.title { font-size: 120% }
- h5.title { font-size: 110% }
- h6.title { font-size: 100% }
-
- .section h1
- {
- margin: 0em 0em 0.5em 0em;
- font-size: 140%;
- }
-
- .section h2 { font-size: 140% }
- .section h3 { font-size: 130% }
- .section h4 { font-size: 120% }
- .section h5 { font-size: 110% }
- .section h6 { font-size: 100% }
-
- /* Code on titles */
- h1 tt.computeroutput { font-size: 140% }
- h2 tt.computeroutput { font-size: 140% }
- h3 tt.computeroutput { font-size: 130% }
- h4 tt.computeroutput { font-size: 120% }
- h5 tt.computeroutput { font-size: 110% }
- h6 tt.computeroutput { font-size: 100% }
-
-/*=============================================================================
- Author
-=============================================================================*/
-
- h3.author
- {
- font-size: 100%
- }
-
-/*=============================================================================
- Lists
-=============================================================================*/
-
- li
- {
- font-size: 10pt;
- line-height: 1.3;
- }
-
- /* Unordered lists */
- ul
- {
- text-align: left;
- }
-
- /* Ordered lists */
- ol
- {
- text-align: left;
- }
-
-/*=============================================================================
- Links
-=============================================================================*/
-
- a
- {
- text-decoration: none; /* no underline */
- }
-
- a:hover
- {
- text-decoration: underline;
- }
-
-/*=============================================================================
- Spirit style navigation
-=============================================================================*/
-
- .spirit-nav
- {
- text-align: right;
- }
-
- .spirit-nav a
- {
- color: white;
- padding-left: 0.5em;
- }
-
- .spirit-nav img
- {
- border-width: 0px;
- }
-
-/*=============================================================================
- Table of contents
-=============================================================================*/
-
- .toc
- {
- margin: 1pc 4% 0pc 4%;
- padding: 0.1pc 1pc 0.1pc 1pc;
- font-size: 10pt;
- line-height: 1.15;
- }
-
- .toc-main
- {
- text-align: center;
- margin: 3pc 16% 3pc 16%;
- padding: 3pc 1pc 3pc 1pc;
- line-height: 0.1;
- }
-
- .boost-toc
- {
- float: right;
- padding: 0.5pc;
- }
-
-/*=============================================================================
- Tables
-=============================================================================*/
-
- .table-title,
- div.table p.title
- {
- margin-left: 4%;
- padding-right: 0.5em;
- padding-left: 0.5em;
- }
-
- .informaltable table,
- .table table
- {
- width: 92%;
- margin-left: 4%;
- margin-right: 4%;
- }
-
- div.informaltable table,
- div.table table
- {
- padding: 4px;
- }
-
- /* Table Cells */
- div.informaltable table tr td,
- div.table table tr td
- {
- padding: 0.5em;
- text-align: left;
- }
-
- div.informaltable table tr th,
- div.table table tr th
- {
- padding: 0.5em 0.5em 0.5em 0.5em;
- border: 1pt solid white;
- font-size: 120%;
- }
-
-/*=============================================================================
- Blurbs
-=============================================================================*/
-
- div.note,
- div.tip,
- div.important,
- div.caution,
- div.warning,
- div.sidebar
- {
- font-size: 10pt;
- line-height: 1.2;
- display: block;
- margin: 1pc 4% 0pc 4%;
- padding: 0.5pc 0.5pc 0.5pc 0.5pc;
- }
-
- div.sidebar img
- {
- padding: 1pt;
- }
-
-
-
-/*=============================================================================
- Callouts
-=============================================================================*/
- .line_callout_bug img
- {
- float: left;
- position:relative;
- left: 4px;
- top: -12px;
- clear: left;
- margin-left:-22px;
- }
-
- .callout_bug img
- {
- }
-
-
-
-/*=============================================================================
- Variable Lists
-=============================================================================*/
-
- /* Make the terms in definition lists bold */
- div.variablelist dl dt,
- span.term
- {
- font-weight: bold;
- font-size: 10pt;
- }
-
- div.variablelist table tbody tr td
- {
- text-align: left;
- vertical-align: top;
- padding: 0em 2em 0em 0em;
- font-size: 10pt;
- margin: 0em 0em 0.5em 0em;
- line-height: 1;
- }
-
- /* Make the terms in definition lists bold */
- div.variablelist dl dt
- {
- margin-bottom: 0.2em;
- }
-
- div.variablelist dl dd
- {
- margin: 0em 0em 0.5em 2em;
- font-size: 10pt;
- }
-
- div.variablelist table tbody tr td p
- div.variablelist dl dd p
- {
- margin: 0em 0em 0.5em 0em;
- line-height: 1;
- }
-
-/*=============================================================================
- Misc
-=============================================================================*/
-
- /* Title of books and articles in bibliographies */
- span.title
- {
- font-style: italic;
- }
-
- span.underline
- {
- text-decoration: underline;
- }
-
- span.strikethrough
- {
- text-decoration: line-through;
- }
-
- /* Copyright, Legal Notice */
- div div.legalnotice p
- {
- text-align: left
- }
-
-/*=============================================================================
- Colors
-=============================================================================*/
-
- @media screen
- {
- /* Links */
- a
- {
- color: #0C7445;
- }
-
- a:visited
- {
- color: #663974;
- }
-
- h1 a, h2 a, h3 a, h4 a, h5 a, h6 a,
- h1 a:hover, h2 a:hover, h3 a:hover, h4 a:hover, h5 a:hover, h6 a:hover,
- h1 a:visited, h2 a:visited, h3 a:visited, h4 a:visited, h5 a:visited, h6 a:visited
- {
- text-decoration: none; /* no underline */
- color: #000000;
- }
-
- /* Syntax Highlighting */
- .keyword { color: #0000AA; }
- .identifier { color: #000000; }
- .special { color: #707070; }
- .preprocessor { color: #402080; }
- .char { color: teal; }
- .comment { color: #800000; }
- .string { color: teal; }
- .number { color: teal; }
- .white_bkd { background-color: #E8FBE9; }
- .dk_grey_bkd { background-color: #A0DAAC; }
-
- /* Copyright, Legal Notice */
- .copyright
- {
- color: #666666;
- font-size: small;
- }
-
- div div.legalnotice p
- {
- color: #666666;
- }
-
- /* Program listing */
- pre.synopsis
- {
- border: 1px solid #DCDCDC;
- border-bottom: 3px solid #9D9D9D;
- border-right: 3px solid #9D9D9D;
- background-color: #FAFFFB;
- }
-
- .programlisting,
- .screen
- {
- border: 1px solid #DCDCDC;
- border-bottom: 3px solid #9D9D9D;
- border-right: 3px solid #9D9D9D;
- background-color: #FAFFFB;
- }
-
- td .programlisting,
- td .screen
- {
- border: 0px solid #DCDCDC;
- }
-
- /* Blurbs */
- div.note,
- div.tip,
- div.important,
- div.caution,
- div.warning,
- div.sidebar
- {
- border: 1px solid #DCDCDC;
- border-bottom: 3px solid #9D9D9D;
- border-right: 3px solid #9D9D9D;
- background-color: #FAFFFB;
- }
-
- /* Table of contents */
- .toc
- {
- border: 1px solid #DCDCDC;
- border-bottom: 3px solid #9D9D9D;
- border-right: 3px solid #9D9D9D;
- background-color: #FAFFFB;
- }
-
- /* Table of contents */
- .toc-main
- {
- border: 1px solid #DCDCDC;
- border-bottom: 3px solid #9D9D9D;
- border-right: 3px solid #9D9D9D;
- background-color: #FAFFFB;
- }
-
-
- /* Tables */
- div.informaltable table tr td,
- div.table table tr td
- {
- border: 1px solid #DCDCDC;
- background-color: #FAFFFB;
- }
-
- div.informaltable table tr th,
- div.table table tr th
- {
- background-color: #E3F9E4;
- border: 1px solid #DCDCDC;
- }
-
- /* Misc */
- span.highlight
- {
- color: #00A000;
- }
- }
-
- @media print
- {
- /* Links */
- a
- {
- color: black;
- }
-
- a:visited
- {
- color: black;
- }
-
- .spirit-nav
- {
- display: none;
- }
-
- /* Program listing */
- pre.synopsis
- {
- border: 1px solid gray;
- background-color: #FAFFFB;
- }
-
- .programlisting,
- .screen
- {
- border: 1px solid gray;
- background-color: #FAFFFB;
- }
-
- td .programlisting,
- td .screen
- {
- border: 0px solid #DCDCDC;
- }
-
- /* Table of contents */
- .toc
- {
- border: 1px solid #DCDCDC;
- border-bottom: 3px solid #9D9D9D;
- border-right: 3px solid #9D9D9D;
- background-color: #FAFFFB;
- }
-
- /* Table of contents */
- .toc-main
- {
- border: 1px solid #DCDCDC;
- border-bottom: 3px solid #9D9D9D;
- border-right: 3px solid #9D9D9D;
- background-color: #FAFFFB;
- }
-
- .informaltable table,
- .table table
- {
- border: 1px solid #DCDCDC;
- border-bottom: 3px solid #9D9D9D;
- border-right: 3px solid #9D9D9D;
- border-collapse: collapse;
- background-color: #FAFFFB;
- }
-
- /* Tables */
- div.informaltable table tr td,
- div.table table tr td
- {
- border: 1px solid #DCDCDC;
- background-color: #FAFFFB;
- }
-
- div.informaltable table tr th,
- div.table table tr th
- {
- border: 1px solid #DCDCDC;
- background-color: #FAFFFB;
- }
-
- /* Misc */
- span.highlight
- {
- font-weight: bold;
- }
- }
Modified: branches/release/libs/icl/doc/html/index.html
==============================================================================
--- branches/release/libs/icl/doc/html/index.html (original)
+++ branches/release/libs/icl/doc/html/index.html 2011-01-13 07:43:05 EST (Thu, 13 Jan 2011)
@@ -28,7 +28,7 @@
<div><p class="copyright">Copyright © 2007 -2010 Joachim Faulhaber</p></div>
<div><p class="copyright">Copyright © 1999 -2006 Cortex Software GmbH</p></div>
<div><div class="legalnotice">
-<a name="id819376"></a><p>
+<a name="id799716"></a><p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
</p>
@@ -248,7 +248,7 @@
</li>
</ul></div>
<a name="boost_icl.introduction.definition_and_basic_example.two_aspects"></a><h5>
-<a name="id819560"></a>
+<a name="id799899"></a>
<a class="link" href="index.html#boost_icl.introduction.definition_and_basic_example.two_aspects">Two
Aspects</a>
</h5>
@@ -311,7 +311,7 @@
related to date and time.
</p>
<a name="boost_icl.introduction.definition_and_basic_example.addabitlity_and_subtractability"></a><h5>
-<a name="id827780"></a>
+<a name="id808119"></a>
<a class="link" href="index.html#boost_icl.introduction.definition_and_basic_example.addabitlity_and_subtractability">Addabitlity
and Subtractability</a>
</h5>
@@ -336,7 +336,7 @@
on overlap</strong></span></em></span>.
</p>
<a name="boost_icl.introduction.definition_and_basic_example.aggregate_on_overlap"></a><h5>
-<a name="id827930"></a>
+<a name="id808269"></a>
<a class="link" href="index.html#boost_icl.introduction.definition_and_basic_example.aggregate_on_overlap">Aggregate
on Overlap</a>
</h5>
@@ -392,13 +392,19 @@
templates</a>
</h3></div></div></div>
<p>
- In addition to interval containers the <span class="bold"><strong>icl</strong></span>
- provides element containers <a href="http://www.cplusplus.com/reference/stl/set/" target="_top"><code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">set</span></code>
- </a> and <code class="computeroutput"><a class="link" href="boost/icl/map.html" title="Class template map">icl::map</a></code>.
+ In addition to interval containers we can work with containers of elements
+ that are <span class="emphasis"><em><span class="bold"><strong>behavioral equal</strong></span></em></span>
+ to the interval containers: On the fundamental aspect they have exactly the
+ same functionality. An <a href="http://www.cplusplus.com/reference/stl/set/" target="_top"><code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">set</span></code>
+ </a> of the STL is such an equivalent set implementation. Due to the
+ aggregation facilities of the icl's interval maps <a href="http://www.cplusplus.com/reference/stl/set/" target="_top"><code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">map</span></code>
+ </a> is fundamentally not completely equivalent to an <code class="computeroutput"><a class="link" href="boost/icl/interval_map.html" title="Class template interval_map">interval_map</a></code>.
+ Therefore there is an extra <code class="computeroutput"><a class="link" href="boost/icl/map.html" title="Class template map">icl::map</a></code>
+ class template for maps of elements in the icl.
</p>
<div class="itemizedlist"><ul type="disc">
<li>
- An std::set
is behavioral equal to
+ The std::set
is behavioral equal to
<code class="computeroutput"><a class="link" href="boost/icl/interval_base_set.html" title="Class template interval_base_set">interval_sets</a></code>
on the <span class="emphasis"><em><span class="bold"><strong>fundamental</strong></span></em></span>
aspect.
@@ -414,37 +420,31 @@
</li>
</ul></div>
<p>
- The following table gives an overview over the main class templates provided
+ The following tables give an overview over the main class templates provided
by the <span class="bold"><strong>icl</strong></span>.
</p>
<div class="table">
-<a name="id828711"></a><p class="title"><b>Table 1.1. Synopsis over the icl's class templates</b></p>
-<div class="table-contents"><table class="table" summary="Synopsis over the icl's class templates">
+<a name="id809078"></a><p class="title"><b>Table 1.1. Interval class templates</b></p>
+<div class="table-contents"><table class="table" summary="Interval class templates">
<colgroup>
<col>
<col>
<col>
-<col>
</colgroup>
<thead><tr>
<th>
<p>
- granularity
- </p>
- </th>
-<th>
- <p>
- style
+ group
</p>
</th>
<th>
<p>
- sets
+ form
</p>
</th>
<th>
<p>
- maps
+ template
</p>
</th>
</tr></thead>
@@ -452,26 +452,143 @@
<tr>
<td>
<p>
- interval
+ statically bounded
+ </p>
+ </td>
+<td>
+ <p>
+ asymmetric
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><a class="link" href="boost/icl/right_open_interval.html" title="Class template right_open_interval">right_open_interval</a></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ </p>
+ </td>
+<td>
+ <p>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><a class="link" href="boost/icl/right_open_interval.html" title="Class template right_open_interval">left_open_interval</a></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ </p>
+ </td>
+<td>
+ <p>
+ symmetric
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><a class="link" href="boost/icl/closed_interval.html" title="Class template closed_interval">closed_interval</a></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ </p>
+ </td>
+<td>
+ <p>
</p>
</td>
<td>
<p>
+ <code class="computeroutput"><a class="link" href="boost/icl/open_interval.html" title="Class template open_interval">open_interval</a></code>
</p>
</td>
+</tr>
+<tr>
+<td>
+ <p>
+ dynamically bounded
+ </p>
+ </td>
+<td>
+ <p>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><a class="link" href="boost/icl/discrete_interval.html" title="Class template discrete_interval">discrete_interval</a></code>
+ </p>
+ </td>
+</tr>
+<tr>
<td>
<p>
- <code class="computeroutput"><a class="link" href="boost/icl/interval.html" title="Struct template interval">interval</a></code>
</p>
</td>
<td>
<p>
</p>
</td>
+<td>
+ <p>
+ <code class="computeroutput"><a class="link" href="boost/icl/continuous_interval.html" title="Class template continuous_interval">continuous_interval</a></code>
+ </p>
+ </td>
</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break"><p>
+ Statically bounded intervals always have the same kind of interval borders,
+ e.g. right open borders<code class="computeroutput"><span class="special">[</span><span class="identifier">a</span><span class="special">..</span><span class="identifier">b</span><span class="special">)</span></code>
+ for <code class="computeroutput"><a class="link" href="boost/icl/right_open_interval.html" title="Class template right_open_interval">right_open_interval</a></code>.
+ Dynamically bounded intervals can have different borders. Refer to the chapter
+ about <a class="link" href="boost_icl/interface.html#boost_icl.interface.class_templates.intervals" title="Intervals"><span class="emphasis"><em><span class="bold"><strong>intervals</strong></span></em></span></a> for details.
+ </p>
+<div class="table">
+<a name="id809342"></a><p class="title"><b>Table 1.2. Container class templates</b></p>
+<div class="table-contents"><table class="table" summary="Container class templates">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+ <p>
+ granularity
+ </p>
+ </th>
+<th>
+ <p>
+ style
+ </p>
+ </th>
+<th>
+ <p>
+ sets
+ </p>
+ </th>
+<th>
+ <p>
+ maps
+ </p>
+ </th>
+</tr></thead>
+<tbody>
<tr>
<td>
<p>
+ interval
</p>
</td>
<td>
@@ -543,7 +660,7 @@
</td>
<td>
<p>
- std::set
+ (std::set
)
</p>
</td>
<td>
@@ -556,9 +673,11 @@
</table></div>
</div>
<br class="table-break"><p>
- <code class="computeroutput"><a class="link" href="boost/icl/interval.html" title="Struct template interval">Interval</a></code> is placed deliberately
- in column <span class="bold"><strong>sets</strong></span> because an interval is a
- set as well. Column <span class="emphasis"><em><span class="bold"><strong>style</strong></span></em></span>
+ <a href="http://www.cplusplus.com/reference/stl/set/" target="_top"><code class="computeroutput"><span class="identifier">Std</span><span class="special">::</span><span class="identifier">set</span></code>
+ </a> is placed in paretheses, because it is not a class template of the
+ <span class="bold"><strong>ICL</strong></span>. It can be used as element container
+ though that is behavioral equal to the ICL's interval sets on their fundamental
+ aspect. Column <span class="emphasis"><em><span class="bold"><strong>style</strong></span></em></span>
refers to the different ways in which interval containers combine added intervals.
These <span class="emphasis"><em><span class="bold"><strong>combining styles</strong></span></em></span>
are described in the next section.
@@ -576,7 +695,7 @@
in the tables below.
</p>
<div class="table">
-<a name="id829015"></a><p class="title"><b>Table 1.2. Interval container's ways to combine intervals</b></p>
+<a name="id809620"></a><p class="title"><b>Table 1.3. Interval container's ways to combine intervals</b></p>
<div class="table-contents"><table class="table" summary="Interval container's ways to combine intervals">
<colgroup>
<col>
@@ -675,7 +794,7 @@
</table></div>
</div>
<br class="table-break"><div class="table">
-<a name="id829192"></a><p class="title"><b>Table 1.3. Interval combining styles by example</b></p>
+<a name="id809798"></a><p class="title"><b>Table 1.4. Interval combining styles by example</b></p>
<div class="table-contents"><table class="table" summary="Interval combining styles by example">
<colgroup>
<col>
@@ -838,7 +957,7 @@
container</a> for an additional demo.
</p>
<a name="boost_icl.introduction.interval_combining_styles.joining_interval_containers"></a><h5>
-<a name="id831225"></a>
+<a name="id810738"></a>
<a class="link" href="index.html#boost_icl.introduction.interval_combining_styles.joining_interval_containers">Joining
interval containers</a>
</h5>
@@ -851,7 +970,7 @@
be the first choice for an interval container.
</p>
<a name="boost_icl.introduction.interval_combining_styles.splitting_interval_containers"></a><h5>
-<a name="id831277"></a>
+<a name="id810790"></a>
<a class="link" href="index.html#boost_icl.introduction.interval_combining_styles.splitting_interval_containers">Splitting
interval containers</a>
</h5>
@@ -865,7 +984,7 @@
<a class="link" href="boost_icl/examples/time_grids.html" title="Time grids for months and weeks">time grids for months and weeks</a>.
</p>
<a name="boost_icl.introduction.interval_combining_styles.separating_interval_containers"></a><h5>
-<a name="id831319"></a>
+<a name="id810832"></a>
<a class="link" href="index.html#boost_icl.introduction.interval_combining_styles.separating_interval_containers">Separating
interval containers</a>
</h5>
@@ -884,7 +1003,7 @@
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
-<td align="left"><p><small>Last revised: December 31, 2010 at 16:49:00 GMT</small></p></td>
+<td align="left"><p><small>Last revised: January 13, 2011 at 10:53:18 GMT</small></p></td>
<td align="right"><div class="copyright-footer"></div></td>
</tr></table>
<hr>
Modified: branches/release/libs/icl/doc/icl.qbk
==============================================================================
--- branches/release/libs/icl/doc/icl.qbk (original)
+++ branches/release/libs/icl/doc/icl.qbk 2011-01-13 07:43:05 EST (Thu, 13 Jan 2011)
@@ -50,6 +50,7 @@
[def __icl_set__ [@http://www.cplusplus.com/reference/stl/set/ `std::set` ]]
[def __icl_sets__ [@http://www.cplusplus.com/reference/stl/set/ `std::sets`]]
[def __std_set__ [@http://www.cplusplus.com/reference/stl/set/ `std::set` ]]
+[def __Std_set__ [@http://www.cplusplus.com/reference/stl/set/ `Std::set` ]]
[def __std_sets__ [@http://www.cplusplus.com/reference/stl/set/ `std::sets`]]
[def __std_map__ [@http://www.cplusplus.com/reference/stl/set/ `std::map` ]]
[def __std_maps__ [@http://www.cplusplus.com/reference/stl/set/ `std::maps`]]
@@ -174,6 +175,7 @@
[def __biLIntervalOrderings__ [link boost_icl.function_reference.additional_interval_orderings ['*Orderings*]]]
[def __biLIntervalMiscellaneous__ [link boost_icl.function_reference.miscellaneous_interval_functions ['*Miscellaneous*]]]
+
[/ column headers]
[def __ch_itvs__ intervals]
Modified: branches/release/libs/icl/doc/introduction.qbk
==============================================================================
--- branches/release/libs/icl/doc/introduction.qbk (original)
+++ branches/release/libs/icl/doc/introduction.qbk 2011-01-13 07:43:05 EST (Thu, 13 Jan 2011)
@@ -178,34 +178,60 @@
[section Icl's class templates]
-In addition to interval containers the *icl* provides element containers
-__icl_set__ and __icl_map__.
+In addition to interval containers we can work with
+containers of elements that are ['*behavioral equal*]
+to the interval containers: On the fundamental aspect
+they have exactly the same functionality.
+An __std_set__ of the STL is such an equivalent set implementation.
+Due to the aggregation facilities of the icl's interval maps
+__std_map__ is fundamentally not completely equivalent to an __itv_map__.
+Therefore there is an extra __icl_map__ class template for maps of
+elements in the icl.
-* An __icl_set__ is behavioral equal to __itv_bsets__ on the __bi_conceptual__ aspect.
+
+* The __std_set__ is behavioral equal to __itv_bsets__ on the __bi_conceptual__ aspect.
* An __icl_map__ is behavioral equal to __itv_bmaps__ on the __bi_conceptual__ aspect.
Specifically an __icl_map__
implements ['*aggregate on overlap*], which is
named ['*aggregate on collision*] for an element container.
-The following table gives an overview over the main
+The following tables give an overview over the main
class templates provided by the *icl*.
-[table Synopsis over the icl's class templates
+[table Interval class templates
+[[group] [form] [template] ]
+[[statically bounded] [asymmetric][__ro_itv__] ]
+[[ ] [] [__lo_itv__] ]
+[[ ] [symmetric] [__cl_itv__] ]
+[[ ] [] [__op_itv__] ]
+[[dynamically bounded][] [__dc_itv__] ]
+[[ ] [] [__ct_itv__] ]
+]
+
+Statically bounded intervals always have the same kind of interval borders,
+e.g. right open borders`[a..b)` for __ro_itv__. Dynamically bounded intervals
+can have different borders. Refer to the chapter about
+[link boost_icl.interface.class_templates.intervals ['*intervals*]]
+for details.
+
+[table Container class templates
[[granularity][style] [sets] [maps] ]
-[[interval] [] [__itv__] [] ]
-[[] [joining] [__itv_set__] [__itv_map__] ]
+[[interval] [joining] [__itv_set__] [__itv_map__] ]
[[] [separating][__sep_itv_set__][] ]
[[] [splitting] [__spl_itv_set__][__spl_itv_map__]]
-[[element] [] [__ele_set__] [__ele_map__] ]
+[[element] [] [(__ele_set__)] [__ele_map__] ]
]
-__Itv__ is placed deliberately in column *sets* because an
-interval is a set as well. Column ['*style*] refers to
+__Std_set__ is placed in paretheses, because it is not a class template
+of the *ICL*. It can be used as element container though that is
+behavioral equal to the ICL's interval sets on their fundamental aspect.
+Column ['*style*] refers to
the different ways in which interval containers combine added
intervals. These ['*combining styles*] are described in the next
section.
+
[endsect]
[section Interval Combining Styles]
Modified: branches/release/libs/icl/example/large_bitset_/large_bitset.hpp
==============================================================================
--- branches/release/libs/icl/example/large_bitset_/large_bitset.hpp (original)
+++ branches/release/libs/icl/example/large_bitset_/large_bitset.hpp 2011-01-13 07:43:05 EST (Thu, 13 Jan 2011)
@@ -166,7 +166,10 @@
//[large_bitset_segment_apply
large_bitset& segment_apply(segment_combiner combine, const interval_type& operand)
{
- using namespace boost; // same as
+ using namespace boost;
+ if(icl::is_empty(operand))
+ return *this;
+ // same as
element_type base = icl::first(operand) >> shift, // icl::first(operand) / divisor
ceil = icl::last (operand) >> shift; // icl::last (operand) / divisor
word_type base_rest = icl::first(operand) & mask , // icl::first(operand) % divisor
Modified: branches/release/libs/icl/test/test_functions.hpp
==============================================================================
--- branches/release/libs/icl/test/test_functions.hpp (original)
+++ branches/release/libs/icl/test/test_functions.hpp 2011-01-13 07:43:05 EST (Thu, 13 Jan 2011)
@@ -25,7 +25,11 @@
{
template <class T, class U, class Trt,
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,Trt) IntervalMap,
+#else
ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap,
+#endif
class SequenceT
>
void itl_map_copy(const SequenceT& segments,
@@ -37,7 +41,11 @@
template <class T, class U, class Trt,
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,Trt) IntervalMap,
+#else
ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap,
+#endif
class SequenceT
>
void test_interval_map_copy_via_inserter(const SequenceT& segments,
Modified: branches/release/libs/icl/test/test_icl_map.hpp
==============================================================================
--- branches/release/libs/icl/test/test_icl_map.hpp (original)
+++ branches/release/libs/icl/test/test_icl_map.hpp 2011-01-13 07:43:05 EST (Thu, 13 Jan 2011)
@@ -10,8 +10,15 @@
#include "portability.hpp"
-template <class T, class U, class Trt,
- ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap>
+template
+<
+ class T, class U, class Trt,
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,Trt) IntervalMap
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap
+#endif
+>
void itl_map_contains_4_bicremental_types()
{
typedef IntervalMap<T,U,Trt> IntervalMapT;
@@ -39,8 +46,15 @@
}
-template <class T, class U, class Trt,
- ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap>
+template
+<
+ class T, class U, class Trt,
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,Trt) IntervalMap
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap
+#endif
+>
void itl_map_find_4_bicremental_types()
{
typedef IntervalMap<T,U,Trt> IntervalMapT;
@@ -64,8 +78,15 @@
}
-template <class T, class U, class Trt,
- ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap>
+template
+<
+ class T, class U, class Trt,
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,Trt) IntervalMap
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap
+#endif
+>
void itl_map_inclusion_compare_4_bicremental_types()
{
typedef IntervalMap<T,U,Trt> IntervalMapT;
Modified: branches/release/libs/icl/test/test_icl_quantifier_shared.hpp
==============================================================================
--- branches/release/libs/icl/test/test_icl_quantifier_shared.hpp (original)
+++ branches/release/libs/icl/test/test_icl_quantifier_shared.hpp 2011-01-13 07:43:05 EST (Thu, 13 Jan 2011)
@@ -10,8 +10,15 @@
#include "portability.hpp"
-template <class T, class U, class Trt,
- ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap>
+template
+<
+ class T, class U, class Trt,
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,Trt) IntervalMap
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap
+#endif
+>
void make_3_icl_maps_and_derivatives_1
(icl::map<T,U,Trt>& map_a,
icl::map<T,U,Trt>& map_b,
@@ -59,8 +66,15 @@
//------------------------------------------------------------------------------
// Monoid EAN
//------------------------------------------------------------------------------
-template <class T, class U, class Trt,
- ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap>
+template
+<
+ class T, class U, class Trt,
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,Trt) IntervalMap
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap
+#endif
+>
void icl_quantifier_check_monoid_plus_4_bicremental_types()
{
typedef IntervalMap<T,U,Trt> IntervalMapT;
@@ -75,8 +89,15 @@
}
-template <class T, class U, class Trt,
- ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap>
+template
+<
+ class T, class U, class Trt,
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,Trt) IntervalMap
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap
+#endif
+>
void icl_quantifier_check_monoid_et_4_bicremental_types()
{
typedef IntervalMap<T,U,Trt> IntervalMapT;
@@ -94,16 +115,15 @@
// Abelian monoid EANC
//------------------------------------------------------------------------------
-template <class T, class U, class Trt,
- template<class _T, class _U,
- class Traits = Trt,
- ICL_COMPARE Compare = ICL_COMPARE_INSTANCE(std::less, _U),
- ICL_COMBINE Combine = ICL_COMBINE_INSTANCE(icl::inplace_plus, _U),
- ICL_SECTION Section = ICL_SECTION_INSTANCE(icl::inter_section, _U),
- ICL_INTERVAL(ICL_COMPARE) Interval = ICL_INTERVAL_INSTANCE(ICL_INTERVAL_DEFAULT, _T, Compare),
- ICL_ALLOC Alloc = std::allocator
- >class IntervalMap
- >
+template
+<
+ class T, class U, class Trt,
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,Trt) IntervalMap
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap
+#endif
+>
void icl_quantifier_check_abelian_monoid_plus_4_bicremental_types()
{
typedef IntervalMap<T,U,Trt> IntervalMapT;
@@ -118,8 +138,15 @@
}
-template <class T, class U, class Trt,
- ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap>
+template
+<
+ class T, class U, class Trt,
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,Trt) IntervalMap
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap
+#endif
+>
void icl_quantifier_check_abelian_monoid_et_4_bicremental_types()
{
typedef IntervalMap<T,U,Trt> IntervalMapT;
@@ -137,8 +164,15 @@
//------------------------------------------------------------------------------
// Abelian partial invertive monoid
//------------------------------------------------------------------------------
-template <class T, class U, class Trt,
- ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap>
+template
+<
+ class T, class U, class Trt,
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,Trt) IntervalMap
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap
+#endif
+>
void icl_quantifier_check_partial_invertive_monoid_plus_4_bicremental_types()
{
typedef IntervalMap<T,U,Trt> IntervalMapT;
@@ -155,8 +189,15 @@
//------------------------------------------------------------------------------
// Abelian partial invertive monoid with distinct equality for inversion
//------------------------------------------------------------------------------
-template <class T, class U, class Trt,
- ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap>
+template
+<
+ class T, class U, class Trt,
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,Trt) IntervalMap
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap
+#endif
+>
void icl_quantifier_check_partial_invertive_monoid_plus_prot_inv_4_bicremental_types()
{
typedef IntervalMap<T,U,Trt> IntervalMapT;
@@ -179,8 +220,15 @@
//------------------------------------------------------------------------------
// Abelian group EANIC
//------------------------------------------------------------------------------
-template <class T, class U, class Trt,
- ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap>
+template
+<
+ class T, class U, class Trt,
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,Trt) IntervalMap
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap
+#endif
+>
void icl_quantifier_check_abelian_group_plus_4_bicremental_types()
{
typedef IntervalMap<T,U,Trt> IntervalMapT;
@@ -197,8 +245,15 @@
//------------------------------------------------------------------------------
// (0 - x) + x =d= 0
//------------------------------------------------------------------------------
-template <class T, class U, class Trt,
- ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap>
+template
+<
+ class T, class U, class Trt,
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,Trt) IntervalMap
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap
+#endif
+>
void icl_quantifier_check_abelian_group_plus_prot_inv_4_bicremental_types()
{
// check abelian group wrt. + and inverability wrt. distinct equality =d= :
@@ -223,8 +278,15 @@
//------------------------------------------------------------------------------
// Containedness
//------------------------------------------------------------------------------
-template <class T, class U, class Trt,
- ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap>
+template
+<
+ class T, class U, class Trt,
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,Trt) IntervalMap
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap
+#endif
+>
void icl_quantifier_check_containedness_4_bicremental_types()
{
typedef IntervalMap<T,U,Trt> IntervalMapT;
Modified: branches/release/libs/icl/test/test_interval_map_shared.hpp
==============================================================================
--- branches/release/libs/icl/test/test_interval_map_shared.hpp (original)
+++ branches/release/libs/icl/test/test_interval_map_shared.hpp 2011-01-13 07:43:05 EST (Thu, 13 Jan 2011)
@@ -10,8 +10,15 @@
#include "portability.hpp"
-template <ICL_IntervalMap_TEMPLATE(_T,_U,Traits,partial_absorber) IntervalMap,
- class T, class U>
+template
+<
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,partial_absorber) IntervalMap,
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,partial_absorber) IntervalMap,
+#endif
+ class T, class U
+>
void interval_map_fundamentals_4_ordered_types()
{
typedef IntervalMap<T,U> IntervalMapT;
@@ -155,8 +162,15 @@
}
-template <ICL_IntervalMap_TEMPLATE(_T,_U,Traits,partial_absorber) IntervalMap,
- class T, class U>
+template
+<
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,partial_absorber) IntervalMap,
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,partial_absorber) IntervalMap,
+#endif
+ class T, class U
+>
void interval_map_ctor_4_bicremental_types()
{
typedef IntervalMap<T,U> IntervalMapT;
@@ -213,8 +227,15 @@
}
-template <ICL_IntervalMap_TEMPLATE(_T,_U,Traits,partial_absorber) IntervalMap,
- class T, class U>
+template
+<
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,partial_absorber) IntervalMap,
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,partial_absorber) IntervalMap,
+#endif
+ class T, class U
+>
void interval_map_add_sub_4_bicremental_types()
{
typedef IntervalMap<T,U> IntervalMapT;
@@ -260,8 +281,15 @@
BOOST_CHECK_EQUAL( map_A2, map_B2 );
}
-template <ICL_IntervalMap_TEMPLATE(_T,_U,Traits,partial_absorber) IntervalMap,
- class T, class U>
+template
+<
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,partial_absorber) IntervalMap,
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,partial_absorber) IntervalMap,
+#endif
+ class T, class U
+>
void interval_map_distinct_4_bicremental_types()
{
typedef IntervalMap<T,U> IntervalMapT;
@@ -288,8 +316,15 @@
BOOST_CHECK_EQUAL( iterative_size(is_1_3_5), 3 );
}
-template <ICL_IntervalMap_TEMPLATE(_T,_U,Traits,partial_absorber) IntervalMap,
- class T, class U>
+template
+<
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,partial_absorber) IntervalMap,
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,partial_absorber) IntervalMap,
+#endif
+ class T, class U
+>
void interval_map_distinct_4_bicremental_continuous_types()
{
typedef IntervalMap<T,U> IntervalMapT;
@@ -335,8 +370,15 @@
}
-template <ICL_IntervalMap_TEMPLATE(_T,_U,Traits,partial_absorber) IntervalMap,
- class T, class U>
+template
+<
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,partial_absorber) IntervalMap,
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,partial_absorber) IntervalMap,
+#endif
+ class T, class U
+>
void interval_map_isolate_4_bicremental_continuous_types()
{
typedef IntervalMap<T,U> IntervalMapT;
@@ -384,8 +426,15 @@
}
-template <ICL_IntervalMap_TEMPLATE(_T,_U,Traits,partial_absorber) IntervalMap,
- class T, class U>
+template
+<
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,partial_absorber) IntervalMap,
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,partial_absorber) IntervalMap,
+#endif
+ class T, class U
+>
void interval_map_contains_4_bicremental_types()
{
typedef IntervalMap<T,U> IntervalMapT;
@@ -420,8 +469,15 @@
BOOST_CHECK_EQUAL( icl::contains(itv_map, itv_set2), true );
}
-template <ICL_IntervalMap_TEMPLATE(_T,_U,Traits,partial_absorber) IntervalMap,
- class T, class U>
+template
+<
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,partial_absorber) IntervalMap,
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,partial_absorber) IntervalMap,
+#endif
+ class T, class U
+>
void interval_map_contains_key_objects_4_bicremental_types()
{
typedef IntervalMap<T,U> IntervalMapT;
@@ -455,8 +511,15 @@
}
-template <ICL_IntervalMap_TEMPLATE(_T,_U,Traits,partial_absorber) IntervalMap,
- class T, class U>
+template
+<
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,partial_absorber) IntervalMap,
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,partial_absorber) IntervalMap,
+#endif
+ class T, class U
+>
void interval_map_operators_4_bicremental_types()
{
typedef IntervalMap<T,U> IntervalMapT;
@@ -491,8 +554,15 @@
// Test for nontrivial intersection of interval maps with intervals and values
-template <ICL_IntervalMap_TEMPLATE(_T,_U,Traits,partial_absorber) IntervalMap,
- class T, class U>
+template
+<
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,partial_absorber) IntervalMap,
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,partial_absorber) IntervalMap,
+#endif
+ class T, class U
+>
void interval_map_base_intersect_4_bicremental_types()
{
typedef IntervalMap<T,U> IntervalMapT;
@@ -591,8 +661,15 @@
// Test for nontrivial erasure of interval maps with intervals and interval sets
-template <ICL_IntervalMap_TEMPLATE(_T,_U,Traits,partial_absorber) IntervalMap,
- class T, class U>
+template
+<
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,partial_absorber) IntervalMap,
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,partial_absorber) IntervalMap,
+#endif
+ class T, class U
+>
void interval_map_base_erase_4_bicremental_types()
{
typedef IntervalMap<T,U> IntervalMapT;
@@ -702,8 +779,15 @@
// Test first_collision
-template <ICL_IntervalMap_TEMPLATE(_T,_U,Traits,partial_absorber) IntervalMap,
- class T, class U>
+template
+<
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,partial_absorber) IntervalMap,
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,partial_absorber) IntervalMap,
+#endif
+ class T, class U
+>
void interval_map_base_is_disjoint_4_bicremental_types()
{
typedef IntervalMap<T,U> IntervalMapT;
@@ -780,8 +864,15 @@
BOOST_CHECK_EQUAL( intersects(map_B, set_A), true );
}
-template <ICL_IntervalMap_TEMPLATE(_T,_U,Traits,partial_absorber) IntervalMap,
- class T, class U>
+template
+<
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,partial_absorber) IntervalMap,
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,partial_absorber) IntervalMap,
+#endif
+ class T, class U
+>
void interval_map_flip_4_bicremental_types()
{
typedef IntervalMap<T,U> IntervalMapT;
@@ -801,8 +892,15 @@
BOOST_CHECK_EQUAL(set_a ^= IDv(1,3,1), IMap(IDv(0,1,1)) + IDv(2,3,1));
}
-template <ICL_IntervalMap_TEMPLATE(_T,_U,Traits,partial_absorber) IntervalMap,
- class T, class U>
+template
+<
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,partial_absorber) IntervalMap,
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,partial_absorber) IntervalMap,
+#endif
+ class T, class U
+>
void interval_map_infix_plus_overload_4_bicremental_types()
{
typedef IntervalMap<T,U> IntervalMapT;
@@ -822,8 +920,15 @@
BOOST_CHECK_EQUAL(map_b + map_pair, map_pair + map_b);
}
-template <ICL_IntervalMap_TEMPLATE(_T,_U,Traits,partial_absorber) IntervalMap,
- class T, class U>
+template
+<
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,partial_absorber) IntervalMap,
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,partial_absorber) IntervalMap,
+#endif
+ class T, class U
+>
void interval_map_infix_pipe_overload_4_bicremental_types()
{
typedef IntervalMap<T,U> IntervalMapT;
@@ -845,8 +950,15 @@
-template <ICL_IntervalMap_TEMPLATE(_T,_U,Traits,partial_absorber) IntervalMap,
- class T, class U>
+template
+<
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,partial_absorber) IntervalMap,
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,partial_absorber) IntervalMap,
+#endif
+ class T, class U
+>
void interval_map_infix_minus_overload_4_bicremental_types()
{
typedef IntervalMap<T,U> IntervalMapT;
@@ -891,8 +1003,15 @@
}
-template <ICL_IntervalMap_TEMPLATE(_T,_U,Traits,partial_absorber) IntervalMap,
- class T, class U>
+template
+<
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,partial_absorber) IntervalMap,
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,partial_absorber) IntervalMap,
+#endif
+ class T, class U
+>
void interval_map_infix_et_overload_4_bicremental_types()
{
typedef IntervalMap<T,U> IntervalMapT;
@@ -934,8 +1053,15 @@
}
-template <ICL_IntervalMap_TEMPLATE(_T,_U,Traits,partial_absorber) IntervalMap,
- class T, class U>
+template
+<
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,partial_absorber) IntervalMap,
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,partial_absorber) IntervalMap,
+#endif
+ class T, class U
+>
void interval_map_infix_caret_overload_4_bicremental_types()
{
typedef IntervalMap<T,U> IntervalMapT;
@@ -967,8 +1093,15 @@
BOOST_CHECK_EQUAL(map_b ^ map_pair, map_pair ^ map_b);
}
-template <ICL_IntervalMap_TEMPLATE(_T,_U,Traits,partial_absorber) IntervalMap,
- class T, class U>
+template
+<
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,partial_absorber) IntervalMap,
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,partial_absorber) IntervalMap,
+#endif
+ class T, class U
+>
void interval_map_find_4_bicremental_types()
{
typedef IntervalMap<T,U> IntervalMapT;
@@ -993,8 +1126,15 @@
}
-template <ICL_IntervalMap_TEMPLATE(_T,_U,Traits,partial_absorber) IntervalMap,
- class T, class U>
+template
+<
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,partial_absorber) IntervalMap,
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,partial_absorber) IntervalMap,
+#endif
+ class T, class U
+>
void interval_map_set_4_bicremental_types()
{
typedef IntervalMap<T,U> IntervalMapT;
@@ -1013,8 +1153,15 @@
}
-template <class T, class U, class Trt,
- ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap>
+template
+<
+ class T, class U, class Trt,
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,Trt) IntervalMap
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap
+#endif
+>
void interval_map_inclusion_compare_4_bicremental_types()
{
typedef IntervalMap<T,U,Trt> IntervalMapT;
@@ -1077,8 +1224,15 @@
}
-template <class T, class U, class Trt,
- ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap>
+template
+<
+ class T, class U, class Trt,
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,Trt) IntervalMap
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap
+#endif
+>
void interval_map_std_copy_via_inserter_4_bicremental_types()
{
typedef IntervalMap<T,U,Trt> IntervalMapT; //Nedded for the test value generator
@@ -1111,8 +1265,15 @@
}
-template <class T, class U, class Trt,
- ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap>
+template
+<
+ class T, class U, class Trt,
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,Trt) IntervalMap
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap
+#endif
+>
void interval_map_element_iter_4_discrete_types()
{
typedef IntervalMap<T,U,Trt> IntervalMapT;
Modified: branches/release/libs/icl/test/test_interval_quantifier_shared.hpp
==============================================================================
--- branches/release/libs/icl/test/test_interval_quantifier_shared.hpp (original)
+++ branches/release/libs/icl/test/test_interval_quantifier_shared.hpp 2011-01-13 07:43:05 EST (Thu, 13 Jan 2011)
@@ -10,8 +10,15 @@
#include "portability.hpp"
-template <class T, class U, class Trt,
- ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap>
+template
+<
+ class T, class U, class Trt,
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,Trt) IntervalMap
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap
+#endif
+>
void make_3_itv_maps_and_derivatives_1
(ICL_PORT_msvc_7_1_IntervalMap(T,U,Trt)& itv_map_a,
ICL_PORT_msvc_7_1_IntervalMap(T,U,Trt)& itv_map_b,
@@ -33,8 +40,15 @@
//------------------------------------------------------------------------------
// Monoid EAN
//------------------------------------------------------------------------------
-template <class T, class U, class Trt,
- ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap>
+template
+<
+ class T, class U, class Trt,
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,Trt) IntervalMap
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap
+#endif
+>
void itv_quantifier_check_monoid_plus_4_bicremental_types()
{
typedef IntervalMap<T,U,Trt> IntervalMapT;
@@ -48,8 +62,15 @@
}
-template <class T, class U, class Trt,
- ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap>
+template
+<
+ class T, class U, class Trt,
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,Trt) IntervalMap
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap
+#endif
+>
void itv_quantifier_check_monoid_et_4_bicremental_types()
{
typedef IntervalMap<T,U,Trt> IntervalMapT;
@@ -66,8 +87,15 @@
// Abelian monoid EANC
//------------------------------------------------------------------------------
-template <class T, class U, class Trt,
- ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap>
+template
+<
+ class T, class U, class Trt,
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,Trt) IntervalMap
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap
+#endif
+>
void itv_quantifier_check_abelian_monoid_plus_4_bicremental_types()
{
typedef IntervalMap<T,U,Trt> IntervalMapT;
@@ -81,8 +109,15 @@
}
-template <class T, class U, class Trt,
- ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap>
+template
+<
+ class T, class U, class Trt,
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,Trt) IntervalMap
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap
+#endif
+>
void itv_quantifier_check_abelian_monoid_et_4_bicremental_types()
{
typedef IntervalMap<T,U,Trt> IntervalMapT;
@@ -99,8 +134,15 @@
//------------------------------------------------------------------------------
// Abelian partial invertive monoid
//------------------------------------------------------------------------------
-template <class T, class U, class Trt,
- ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap>
+template
+<
+ class T, class U, class Trt,
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,Trt) IntervalMap
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap
+#endif
+>
void itv_quantifier_check_partial_invertive_monoid_plus_4_bicremental_types()
{
typedef IntervalMap<T,U,Trt> IntervalMapT;
@@ -116,8 +158,15 @@
//------------------------------------------------------------------------------
// Abelian partial invertive monoid with distinct equality for inversion
//------------------------------------------------------------------------------
-template <class T, class U, class Trt,
- ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap>
+template
+<
+ class T, class U, class Trt,
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,Trt) IntervalMap
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap
+#endif
+>
void itv_quantifier_check_partial_invertive_monoid_plus_prot_inv_4_bicremental_types()
{
typedef IntervalMap<T,U,Trt> IntervalMapT;
@@ -139,8 +188,15 @@
//------------------------------------------------------------------------------
// Abelian group EANIC
//------------------------------------------------------------------------------
-template <class T, class U, class Trt,
- ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap>
+template
+<
+ class T, class U, class Trt,
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,Trt) IntervalMap
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap
+#endif
+>
void itv_quantifier_check_abelian_group_plus_4_bicremental_types()
{
typedef IntervalMap<T,U,Trt> IntervalMapT;
@@ -156,8 +212,15 @@
//------------------------------------------------------------------------------
// (0 - x) + x =d= 0
//------------------------------------------------------------------------------
-template <class T, class U, class Trt,
- ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap>
+template
+<
+ class T, class U, class Trt,
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,Trt) IntervalMap
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap
+#endif
+>
void itv_quantifier_check_abelian_group_plus_prot_inv_4_bicremental_types()
{
// check abelian group wrt. + and inverability wrt. distinct equality =d= :
@@ -182,8 +245,15 @@
//------------------------------------------------------------------------------
// Inner complement
//------------------------------------------------------------------------------
-template <class T, class U, class Trt,
- ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap>
+template
+<
+ class T, class U, class Trt,
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,Trt) IntervalMap
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap
+#endif
+>
void itv_quantifier_check_inner_complementarity_4_bicremental_types()
{
typedef IntervalMap<T,U,Trt> IntervalMapT;
@@ -198,8 +268,15 @@
has_inner_complementarity<IntervalMapT,IntervalSetT>(map_c);
}
-template <class T, class U, class Trt,
- ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap>
+template
+<
+ class T, class U, class Trt,
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,Trt) IntervalMap
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap
+#endif
+>
void itv_quantifier_check_length_complementarity_4_bicremental_types()
{
typedef IntervalMap<T,U,Trt> IntervalMapT;
Modified: branches/release/libs/icl/test/test_interval_set_shared.hpp
==============================================================================
--- branches/release/libs/icl/test/test_interval_set_shared.hpp (original)
+++ branches/release/libs/icl/test/test_interval_set_shared.hpp 2011-01-13 07:43:05 EST (Thu, 13 Jan 2011)
@@ -678,6 +678,37 @@
}
template <ICL_IntervalSet_TEMPLATE(_T) IntervalSet, class T>
+void interval_bitset_find_4_integral_types()
+{
+ typedef IntervalSet<T> IntervalSetT;
+ typedef typename IntervalSetT::interval_type IntervalT;
+ typedef typename IntervalSetT::bitset_type BitsT;
+
+ IntervalT itv = I_D(3,5);
+
+ IntervalSetT set_a;
+ set_a.add(C_D(1,3)).add(I_I(6,11));
+
+ typename IntervalSetT::const_iterator found = set_a.find(MK_v(6));
+
+ BOOST_CHECK( (found->second).contains(6) );
+
+ found = set_a.find(MK_v(5));
+ BOOST_CHECK( found == set_a.end() );
+
+ set_a.add(MK_v(64));
+ found = set_a.find(MK_v(64));
+ BOOST_CHECK( (found->second).contains(0) );
+
+ set_a.add(MK_v(65));
+ found = set_a.find(MK_v(65));
+ BOOST_CHECK( (found->second).contains(1) );
+
+ found = set_a.find(MK_v(66));
+ BOOST_CHECK( found == set_a.end() );
+}
+
+template <ICL_IntervalSet_TEMPLATE(_T) IntervalSet, class T>
void interval_set_element_iter_4_discrete_types()
{
typedef IntervalSet<T> IntervalSetT;
Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk