$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
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;