Boost logo

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 &#169; 2007 -2010 Joachim Faulhaber</p></div>
 <div><p class="copyright">Copyright &#169; 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&#160;1.1.&#160;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&#160;1.1.&#160;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&#160;1.2.&#160;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&#160;1.2.&#160;Interval container's ways to combine intervals</b></p>
+<a name="id809620"></a><p class="title"><b>Table&#160;1.3.&#160;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&#160;1.3.&#160;Interval combining styles by example</b></p>
+<a name="id809798"></a><p class="title"><b>Table&#160;1.4.&#160;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