Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r50011 - in sandbox/itl/boost: itl itl_xt
From: afojgo_at_[hidden]
Date: 2008-11-29 08:44:22


Author: jofaber
Date: 2008-11-29 08:44:20 EST (Sat, 29 Nov 2008)
New Revision: 50011
URL: http://svn.boost.org/trac/boost/changeset/50011

Log:
Refactored: Adding macros for template parameters. Enabling template parameters changes via macro redefinition.
Stable {msvc-9.0}
Text files modified:
   sandbox/itl/boost/itl/interval.hpp | 79 +++++++++++----------
   sandbox/itl/boost/itl/interval_base_map.hpp | 83 +++++++++++-----------
   sandbox/itl/boost/itl/interval_base_set.hpp | 34 ++++----
   sandbox/itl/boost/itl/interval_map.hpp | 54 +++++++-------
   sandbox/itl/boost/itl/interval_maps.hpp | 144 ++++++++++++++++++++--------------------
   sandbox/itl/boost/itl/interval_set.hpp | 24 +++---
   sandbox/itl/boost/itl/interval_sets.hpp | 128 +++++++++++++++++-----------------
   sandbox/itl/boost/itl/map.hpp | 42 +++++-----
   sandbox/itl/boost/itl/notate.hpp | 12 +++
   sandbox/itl/boost/itl/separate_interval_set.hpp | 12 +-
   sandbox/itl/boost/itl/set.hpp | 32 ++++----
   sandbox/itl/boost/itl/split_interval_map.hpp | 40 +++++-----
   sandbox/itl/boost/itl/split_interval_set.hpp | 20 ++--
   sandbox/itl/boost/itl_xt/list.hpp | 32 ++++----
   sandbox/itl/boost/itl_xt/string_set.hpp | 6
   15 files changed, 378 insertions(+), 364 deletions(-)

Modified: sandbox/itl/boost/itl/interval.hpp
==============================================================================
--- sandbox/itl/boost/itl/interval.hpp (original)
+++ sandbox/itl/boost/itl/interval.hpp 2008-11-29 08:44:20 EST (Sat, 29 Nov 2008)
@@ -39,6 +39,7 @@
 #include <boost/call_traits.hpp>
 #include <boost/mpl/bool.hpp>
 #include <boost/mpl/if.hpp>
+#include <boost/itl/notate.hpp>
 #include <boost/itl/type_traits/neutron.hpp>
 #include <boost/itl/type_traits/unon.hpp>
 #include <boost/itl/type_traits/is_continuous.hpp>
@@ -299,7 +300,7 @@
 
     @author Joachim Faulhaber
 */
-template <class DataT, template<class>class Compare = std::less>
+template <class DataT, ITL_COMPARE Compare = std::less>
 class interval
 {
 public:
@@ -618,7 +619,7 @@
 } ;
 
 
-template <class DataT, template<class>class Compare>
+template <class DataT, ITL_COMPARE Compare>
 typename interval<DataT,Compare>::bound_types interval<DataT,Compare>::succession_bounds()const
 {
     if(_boundtypes==RIGHT_OPEN) return RIGHT_OPEN;
@@ -652,7 +653,7 @@
         { return IntervalT::data_less(succ(x),y); } //{ return succ(x) < y ; }
 };
 
-template <class DataT, template<class>class Compare>
+template <class DataT, ITL_COMPARE Compare>
 bool interval<DataT,Compare>::empty()const
 {
     using namespace boost::mpl;
@@ -732,7 +733,7 @@
 
 // NOTE structural similarities between empty and exclusive_less!
 // emptieness can be defined as being exclusive less to oneself.
-template <class DataT, template<class>class Compare>
+template <class DataT, ITL_COMPARE Compare>
 bool interval<DataT,Compare>::exclusive_less(const interval& x2)const
 {
     using namespace boost::mpl;
@@ -750,7 +751,7 @@
 }
 
 
-template <class DataT, template<class>class Compare>
+template <class DataT, ITL_COMPARE Compare>
 bool interval<DataT,Compare>::lower_less(const interval& x2)const
 {
     using namespace boost::mpl;
@@ -768,7 +769,7 @@
            ::type::open_bound_less(_lwb, x2._lwb);
 }
 
-template <class DataT, template<class>class Compare>
+template <class DataT, ITL_COMPARE Compare>
 bool interval<DataT,Compare>::upper_less(const interval& x2)const
 {
     using namespace boost::mpl;
@@ -787,7 +788,7 @@
 }
 
 
-template <class DataT, template<class>class Compare>
+template <class DataT, ITL_COMPARE Compare>
 bool interval<DataT,Compare>::lower_less_equal(const interval& x2)const
 {
     using namespace boost::mpl;
@@ -806,7 +807,7 @@
 }
 
 
-template <class DataT, template<class>class Compare>
+template <class DataT, ITL_COMPARE Compare>
 bool interval<DataT,Compare>::upper_less_equal(const interval& x2)const
 {
     using namespace boost::mpl;
@@ -827,7 +828,7 @@
 
 //NOTE THINK: This implementation is rather interesting wrt. continuous value types.
 // An alternative implementation was x.lwb_equal(y)={return x.lower_less_equal(y) && y.lower_less_equal(x)}
-template <class DataT, template<class>class Compare>
+template <class DataT, ITL_COMPARE Compare>
 bool interval<DataT,Compare>::lower_equal(const interval& x2)const
 {
     using namespace boost::mpl;
@@ -845,7 +846,7 @@
 
 //NOTE THINK: This implementation is rather interesting wrt. continuous value types.
 // An alternative implementation was x.lwb_equal(y)={return x.lower_less_equal(y) && y.lower_less_equal(x)}
-template <class DataT, template<class>class Compare>
+template <class DataT, ITL_COMPARE Compare>
 bool interval<DataT,Compare>::upper_equal(const interval& x2)const
 {
     using namespace boost::mpl;
@@ -863,7 +864,7 @@
 
 
 
-template <class DataT, template<class>class Compare>
+template <class DataT, ITL_COMPARE Compare>
 typename interval<DataT,Compare>::BoundT interval<DataT,Compare>::lwb_min(const interval& x2)const
 {
     if( x2.lower_less(*this) )
@@ -872,7 +873,7 @@
         return BoundT(_lwb, boundtypes());
 }
 
-template <class DataT, template<class>class Compare>
+template <class DataT, ITL_COMPARE Compare>
 typename interval<DataT,Compare>::BoundT interval<DataT,Compare>::upb_max(const interval& x2)const
 {
     if( upper_less(x2) )
@@ -883,7 +884,7 @@
 
 
 // JODO THINK URG do borders reverse when lwb_max is used as upb etc. ?
-template <class DataT, template<class>class Compare>
+template <class DataT, ITL_COMPARE Compare>
 typename interval<DataT,Compare>::BoundT interval<DataT,Compare>::lwb_max(const interval& x2)const
 {
     if( lower_less(x2) )
@@ -892,7 +893,7 @@
         return BoundT(_lwb, boundtypes());
 }
 
-template <class DataT, template<class>class Compare>
+template <class DataT, ITL_COMPARE Compare>
 typename interval<DataT,Compare>::BoundT interval<DataT,Compare>::upb_min(const interval& x2)const
 {
     if( x2.upper_less(*this) )
@@ -902,13 +903,13 @@
 }
 
 
-template <class DataT, template<class>class Compare>
+template <class DataT, ITL_COMPARE Compare>
 typename interval<DataT,Compare>::BoundT interval<DataT,Compare>::upb_leftOf(const interval& x2)const
 {
     return BoundT(x2._lwb, x2.succession_bounds());
 }
 
-template <class DataT, template<class>class Compare>
+template <class DataT, ITL_COMPARE Compare>
 typename interval<DataT,Compare>::BoundT interval<DataT,Compare>::lwb_rightOf(const interval& x2)const
 {
     return BoundT(x2._upb, x2.succession_bounds());
@@ -916,7 +917,7 @@
 
 
 // NOTE non symmetric version: *this[upb].touches(x2[lwb])
-template <class DataT, template<class>class Compare>
+template <class DataT, ITL_COMPARE Compare>
 bool interval<DataT,Compare>::touches(const interval& x2)const
 {
     using namespace boost::mpl;
@@ -932,7 +933,7 @@
            ::type::has_equal_border_touch(*this, x2);
 }
 
-template <class DataT, template<class>class Compare>
+template <class DataT, ITL_COMPARE Compare>
 bool interval<DataT,Compare>::contains(const DataT& x)const
 {
     if(rightbound_closed() && leftbound_closed()) return data_less_equal(_lwb, x) && data_less_equal(x, _upb);
@@ -941,16 +942,16 @@
                                                   return data_less(_lwb, x) && data_less(x, _upb);
 }
 
-template <class DataT, template<class>class Compare>
+template <class DataT, ITL_COMPARE Compare>
 bool interval<DataT,Compare>::contained_in(const interval& super)const
 { return super.lower_less_equal(*this) && upper_less_equal(super); }
 
-template <class DataT, template<class>class Compare>
+template <class DataT, ITL_COMPARE Compare>
 bool interval<DataT,Compare>::contains(const interval& sub)const
 { return lower_less_equal(sub) && sub.upper_less_equal(*this); }
 
 
-template <class DataT, template<class>class Compare>
+template <class DataT, ITL_COMPARE Compare>
 interval<DataT,Compare>& interval<DataT,Compare>::extend(const interval<DataT,Compare>& x2)
 {
     if(x2.empty()) return *this;
@@ -968,7 +969,7 @@
 }
 
 
-template <class DataT, template<class>class Compare>
+template <class DataT, ITL_COMPARE Compare>
 inline interval<DataT,Compare>& interval<DataT,Compare>::left_subtract(const interval& x2)
 {
     set_lwb( BoundT(x2._upb, x2.succession_bounds()) );
@@ -976,7 +977,7 @@
 }
 
 
-template <class DataT, template<class>class Compare>
+template <class DataT, ITL_COMPARE Compare>
 void interval<DataT,Compare>::intersect(interval<DataT,Compare>& isec, const interval<DataT,Compare>& x2)const
 {
     isec.set_lwb(lwb_max(x2));
@@ -984,7 +985,7 @@
 }
 
 
-template <class DataT, template<class>class Compare>
+template <class DataT, ITL_COMPARE Compare>
 void interval<DataT,Compare>::left_surplus(interval<DataT,Compare>& lsur, const interval<DataT,Compare>& x2)const
 {
     if(lower_less(x2)) {
@@ -994,7 +995,7 @@
     else lsur.clear();
 }
 
-template <class DataT, template<class>class Compare>
+template <class DataT, ITL_COMPARE Compare>
 void interval<DataT,Compare>::right_surplus(interval<DataT,Compare>& rsur, const interval<DataT,Compare>& x2)const
 {
     if(x2.upper_less(*this)) {
@@ -1005,7 +1006,7 @@
 }
 
 
-template <class DataT, template<class>class Compare>
+template <class DataT, ITL_COMPARE Compare>
 const std::string interval<DataT,Compare>::as_string()const
 {
     std::string itvRep("");
@@ -1027,7 +1028,7 @@
 // NOTE: they must be used in any function that is essential to all instances
 // of DataT
 
-template <class DataT, template<class>class Compare>
+template <class DataT, ITL_COMPARE Compare>
 DataT interval<DataT,Compare>::first()const
 {
     //JODO: BOOST_STATIC_ASSERT generates compiletime error even if
@@ -1037,14 +1038,14 @@
     return leftbound_closed() ? _lwb : succ(_lwb);
 }
 
-template <class DataT, template<class>class Compare>
+template <class DataT, ITL_COMPARE Compare>
 DataT interval<DataT,Compare>::last()const
 {
     BOOST_ASSERT(!itl::is_continuous<DataT>::value);
     return rightbound_closed() ? _upb : pred(_upb);
 }
 
-template <class DataT, template<class>class Compare>
+template <class DataT, ITL_COMPARE Compare>
 typename interval<DataT,Compare>::size_type interval<DataT,Compare>::cardinality()const
 {
     using namespace boost::mpl;
@@ -1056,7 +1057,7 @@
               ::type::cardinality(*this);
 }
 
-template <class DataT, template<class>class Compare>
+template <class DataT, ITL_COMPARE Compare>
 typename interval<DataT,Compare>::difference_type interval<DataT,Compare>::length()const
 {
     using namespace boost::mpl;
@@ -1069,19 +1070,19 @@
 }
 
 
-template <class DataT, template<class>class Compare>
+template <class DataT, ITL_COMPARE Compare>
 interval<DataT,Compare> interval<DataT,Compare>::as_closed_interval()const
 {
     return interval(first(), last(), CLOSED);
 }
 
-template <class DataT, template<class>class Compare>
+template <class DataT, ITL_COMPARE Compare>
 interval<DataT,Compare> interval<DataT,Compare>::as_rightopen_interval()const
 {
     return interval(first(), pred(last()), RIGHT_OPEN);
 }
 
-template <class DataT, template<class>class Compare>
+template <class DataT, ITL_COMPARE Compare>
 void interval<DataT,Compare>::transform_bounds(bound_types bt)
 {
     switch(bt)
@@ -1093,7 +1094,7 @@
     }
 }
 
-template <class DataT, template<class>class Compare>
+template <class DataT, ITL_COMPARE Compare>
 void interval<DataT,Compare>::close_left_bound()
 {
     if(leftbound_open())
@@ -1103,7 +1104,7 @@
     }
 }
 
-template <class DataT, template<class>class Compare>
+template <class DataT, ITL_COMPARE Compare>
 void interval<DataT,Compare>::open_right_bound()
 {
     if(rightbound_closed())
@@ -1115,13 +1116,13 @@
 
 
 
-template <class DataT, template<class>class Compare>
+template <class DataT, ITL_COMPARE Compare>
 inline bool operator == (const interval<DataT,Compare>& lhs, const interval<DataT,Compare>& rhs)
 {
     return lhs.equal(rhs);
 }
 
-template <class DataT, template<class>class Compare>
+template <class DataT, ITL_COMPARE Compare>
 inline bool operator < (const interval<DataT,Compare>& lhs, const interval<DataT,Compare>& rhs)
 {
     return lhs.less(rhs);
@@ -1156,7 +1157,7 @@
 // ----------------------------------------------------------------------------
 // operators
 // ----------------------------------------------------------------------------
-template <class DataT, template<class>class Compare>
+template <class DataT, ITL_COMPARE Compare>
 itl::interval<DataT,Compare>& operator *= ( itl::interval<DataT,Compare>& section,
                                    const itl::interval<DataT,Compare>& sectant)
 {
@@ -1164,7 +1165,7 @@
     return section;
 }
 
-template<class CharType, class CharTraits, class DataT, template<class>class Compare>
+template<class CharType, class CharTraits, class DataT, ITL_COMPARE Compare>
 std::basic_ostream<CharType, CharTraits> &operator<<
   (std::basic_ostream<CharType, CharTraits> &stream, interval<DataT,Compare> const& x)
 {

Modified: sandbox/itl/boost/itl/interval_base_map.hpp
==============================================================================
--- sandbox/itl/boost/itl/interval_base_map.hpp (original)
+++ sandbox/itl/boost/itl/interval_base_map.hpp 2008-11-29 08:44:20 EST (Sat, 29 Nov 2008)
@@ -135,10 +135,10 @@
     typename DomainT,
     typename CodomainT,
     class Traits = itl::neutron_absorber,
- template<class, template<class>class>class Interval = itl::interval,
- template<class>class Compare = std::less,
- template<class>class Combine = itl::inplace_plus,
- template<class>class Alloc = std::allocator
+ template<class,ITL_COMPARE>class Interval = itl::interval,
+ ITL_COMPARE Compare = std::less,
+ ITL_COMBINE Combine = itl::inplace_plus,
+ ITL_ALLOC Alloc = std::allocator
>
 #ifdef USE_CONCEPTS
 //conceptgcc is still too buggy
@@ -424,7 +424,7 @@
     SubType& add(const value_type& x)
         { access::add(*that(), x, mpl::apply<Combiner,CodomainT>::type()); return *that(); };
 
- template<template<class>class Combiner>
+ template<ITL_COMBINE Combiner>
     SubType& add(const value_type& x)
     { access::add(*that(), x, Combiner<CodomainT>()); return *that(); };
 
@@ -458,7 +458,7 @@
         <tt>m0=m; m.add(x); m.subtract(x);</tt> implies <tt>m==m0 </tt>
     */
     SubType& add(const value_type& x)
- { access::add(*that(), x, inplace_plus<CodomainT>()); return *that(); }
+ { access::add(*that(), x, Combine<CodomainT>()); return *that(); }
 //@}
 
 
@@ -696,8 +696,9 @@
     <
         template
         <
- class DomT, template<class DomT,template<class>class Comp>class Interv,
- template<class>class Comp, template<class>class Allc
+ class DomT,
+ template<class DomT, ITL_COMPARE Comp>class Interv,
+ ITL_COMPARE Comp, ITL_ALLOC Allc
>
         class IntervalSet
>
@@ -725,8 +726,8 @@
         template
         <
             class DomT, class CodomT,
- class Trts, template<class DomT,template<class>class Comp>class Interv,
- template<class>class Comp, template<class>class Combi, template<class>class Allc
+ class Trts, template<class DomT,ITL_COMPARE Comp>class Interv,
+ ITL_COMPARE Comp, ITL_COMBINE Combi, ITL_ALLOC Allc
>
         class IntervalMap
>
@@ -785,8 +786,8 @@
     <
         template
         <
- class DomT, template<class DomT,template<class>class Comp>class Interv,
- template<class>class Comp, template<class>class Allc
+ class DomT, template<class DomT,ITL_COMPARE Comp>class Interv,
+ ITL_COMPARE Comp, ITL_ALLOC Allc
>
         class IntervalSet
>
@@ -927,8 +928,8 @@
 template
 <
     class SubType, class DomainT, class CodomainT, class Traits,
- template<class, template<class>class>class Interval, template<class>class Compare,
- template<class>class Combine, template<class>class Alloc
+ template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare,
+ ITL_COMBINE Combine, ITL_ALLOC Alloc
>
 typename interval_base_map<SubType,DomainT,CodomainT,Traits,
                            Interval,Compare,Combine,Alloc>::size_type
@@ -947,8 +948,8 @@
 template
 <
     class SubType, class DomainT, class CodomainT, class Traits,
- template<class, template<class>class>class Interval, template<class>class Compare,
- template<class>class Combine, template<class>class Alloc
+ template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare,
+ ITL_COMBINE Combine, ITL_ALLOC Alloc
>
 typename interval_base_map<SubType,DomainT,CodomainT,Traits,
                            Interval,Compare,Combine,Alloc>::difference_type
@@ -967,7 +968,7 @@
 template
 <
     class SubType,
- class DomainT, class CodomainT, class Traits, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Combine, template<class>class Alloc
+ class DomainT, class CodomainT, class Traits, template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc
>
 bool interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>::contained_in(const interval_base_map& super)const
 {
@@ -983,16 +984,16 @@
 <
     class SubType,
     class DomainT, class CodomainT,
- class Traits, template<class, template<class>class>class Interval,
- template<class>class Compare, template<class>class Combine, template<class>class Alloc
+ class Traits, template<class,ITL_COMPARE>class Interval,
+ ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc
>
     template
     <
         template
         <
             class DomT, class CodomT,
- class Trts, template<class DomT,template<class>class Comp>class Interv,
- template<class>class Comp, template<class>class Combi, template<class>class Allc
+ class Trts, template<class DomT,ITL_COMPARE Comp>class Interv,
+ ITL_COMPARE Comp, ITL_COMBINE Combi, ITL_ALLOC Allc
>
         class IntervalMap
>
@@ -1019,7 +1020,7 @@
 template
 <
     class SubType,
- class DomainT, class CodomainT, class Traits, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Combine, template<class>class Alloc
+ class DomainT, class CodomainT, class Traits, template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc
>
 void interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
     ::add_intersection(interval_base_map& section,
@@ -1045,7 +1046,7 @@
                                                     inplace_star<CodomainT>());
             else
                 section.that()->add(value_type(common_interval, sectant.CONT_VALUE),
- inplace_plus<CodomainT>());
+ Combine<CodomainT>());
         }
     }
 }
@@ -1054,7 +1055,7 @@
 template
 <
     class SubType,
- class DomainT, class CodomainT, class Traits, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Combine, template<class>class Alloc
+ class DomainT, class CodomainT, class Traits, template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc
>
 void interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
     ::add_intersection(interval_base_map& section,
@@ -1081,7 +1082,7 @@
 template
 <
     class SubType,
- class DomainT, class CodomainT, class Traits, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Combine, template<class>class Alloc
+ class DomainT, class CodomainT, class Traits, template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc
>
 interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>& interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
     ::join()
@@ -1130,7 +1131,7 @@
 template
 <
     class SubType,
- class DomainT, class CodomainT, class Traits, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Combine, template<class>class Alloc
+ class DomainT, class CodomainT, class Traits, template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc
>
 std::string interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>::as_string()const
 {
@@ -1150,7 +1151,7 @@
 template
 <
     class SubType,
- class DomainT, class CodomainT, class Traits, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Combine, template<class>class Alloc
+ class DomainT, class CodomainT, class Traits, template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc
>
 CodomainT interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>::sum()const
 {
@@ -1164,7 +1165,7 @@
 template
 <
     class SubType,
- class DomainT, class CodomainT, class Traits, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Combine, template<class>class Alloc
+ class DomainT, class CodomainT, class Traits, template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc
>
 void interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>::uniformBounds( typename interval<DomainT>::bound_types bt)
 {
@@ -1176,7 +1177,7 @@
 template
 <
     class SubType,
- class DomainT, class CodomainT, class Traits, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Combine, template<class>class Alloc
+ class DomainT, class CodomainT, class Traits, template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc
>
 void interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>::closeLeftBounds()
 {
@@ -1190,7 +1191,7 @@
 template
 <
     class SubType,
- class DomainT, class CodomainT, class Traits, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Combine, template<class>class Alloc
+ class DomainT, class CodomainT, class Traits, template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc
>
 SubType& interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
     ::erase(const interval_type& x_itv)
@@ -1228,7 +1229,7 @@
 template
 <
     class SubType,
- class DomainT, class CodomainT, class Traits, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Combine, template<class>class Alloc
+ class DomainT, class CodomainT, class Traits, template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc
>
 SubType&
 interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
@@ -1252,7 +1253,7 @@
 template
 <
     class SubType,
- class DomainT, class CodomainT, class Traits, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Combine, template<class>class Alloc
+ class DomainT, class CodomainT, class Traits, template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc
>
 inline bool operator == (const interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>& lhs,
                          const interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>& rhs)
@@ -1268,7 +1269,7 @@
 template
 <
     class SubType,
- class DomainT, class CodomainT, class Traits, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Combine, template<class>class Alloc
+ class DomainT, class CodomainT, class Traits, template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc
>
 inline bool is_protonic_equal(const interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>& lhs,
                               const interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>& rhs)
@@ -1289,7 +1290,7 @@
 template
 <
     class SubType,
- class DomainT, class CodomainT, class Traits, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Combine, template<class>class Alloc
+ class DomainT, class CodomainT, class Traits, template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc
>
 inline bool operator < (const interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>& lhs,
                         const interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>& rhs)
@@ -1303,7 +1304,7 @@
 template
 <
     class SubType,
- class DomainT, class CodomainT, class Traits, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Combine, template<class>class Alloc
+ class DomainT, class CodomainT, class Traits, template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc
>
 inline bool operator <= (const interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>& lhs,
                         const interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>& rhs)
@@ -1318,8 +1319,8 @@
 <
     class SubType,
     class DomainT, class CodomainT,
- class Traits, template<class, template<class>class>class Interval,
- template<class>class Compare, template<class>class Combine, template<class>class Alloc
+ class Traits, template<class,ITL_COMPARE>class Interval,
+ ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc
>
 interval_base_map<SubType,DomainT,CodomainT,
                   Traits,Interval,Compare,Alloc>&
@@ -1343,8 +1344,8 @@
 <
     class SubType,
     class DomainT, class CodomainT,
- class Traits, template<class, template<class>class>class Interval,
- template<class>class Compare, template<class>class Combine, template<class>class Alloc
+ class Traits, template<class,ITL_COMPARE>class Interval,
+ ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc
>
 interval_base_map<SubType,DomainT,CodomainT,
                   Traits,Interval,Compare,Alloc>&
@@ -1368,8 +1369,8 @@
 
 template<class CharType, class CharTraits,
     class SubType, class DomainT, class CodomainT, class Traits,
- template<class, template<class>class>class Interval, template<class>class Compare,
- template<class>class Combine, template<class>class Alloc>
+ template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare,
+ ITL_COMBINE Combine, ITL_ALLOC Alloc>
 std::basic_ostream<CharType, CharTraits>& operator <<
   (std::basic_ostream<CharType, CharTraits>& stream,
    const interval_base_map<SubType,DomainT,CodomainT,Traits,

Modified: sandbox/itl/boost/itl/interval_base_set.hpp
==============================================================================
--- sandbox/itl/boost/itl/interval_base_set.hpp (original)
+++ sandbox/itl/boost/itl/interval_base_set.hpp 2008-11-29 08:44:20 EST (Sat, 29 Nov 2008)
@@ -102,9 +102,9 @@
 <
     typename SubType,
     typename DomainT,
- template<class, template<class>class>class Interval = itl::interval,
- template<class>class Compare = std::less,
- template<class>class Alloc = std::allocator
+ template<class, ITL_COMPARE>class Interval = itl::interval,
+ ITL_COMPARE Compare = std::less,
+ ITL_ALLOC Alloc = std::allocator
>
 #ifdef USE_CONCEPTS
     requires {std::LessThanComparable<DomainT>}
@@ -464,8 +464,8 @@
 
 template
 <
- class SubType, class DomainT, template<class, template<class>class>class Interval,
- template<class>class Compare, template<class>class Alloc
+ class SubType, class DomainT, template<class,ITL_COMPARE>class Interval,
+ ITL_COMPARE Compare, ITL_ALLOC Alloc
>
 typename interval_base_set<SubType,DomainT,Interval,Compare,Alloc>::size_type
 interval_base_set<SubType,DomainT,Interval,Compare,Alloc>::cardinality()const
@@ -495,8 +495,8 @@
 
 template
 <
- class SubType, class DomainT, template<class, template<class>class>class Interval,
- template<class>class Compare, template<class>class Alloc
+ class SubType, class DomainT, template<class,ITL_COMPARE>class Interval,
+ ITL_COMPARE Compare, ITL_ALLOC Alloc
>
 typename
     interval_base_set<SubType,DomainT,Interval,Compare,Alloc>::difference_type
@@ -511,8 +511,8 @@
 
 template
 <
- class SubType, class DomainT, template<class, template<class>class>class Interval,
- template<class>class Compare, template<class>class Alloc
+ class SubType, class DomainT, template<class,ITL_COMPARE>class Interval,
+ ITL_COMPARE Compare, ITL_ALLOC Alloc
>
 bool interval_base_set<SubType,DomainT,Interval,Compare,Alloc>
     ::contained_in(const interval_base_set& x2)const
@@ -538,7 +538,7 @@
 
 
 template<class SubType,
- class DomainT, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Alloc>
+ class DomainT, template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_ALLOC Alloc>
 void interval_base_set<SubType,DomainT,Interval,Compare,Alloc>::add_intersection(interval_base_set& section, const value_type& x)const
 {
     // any intersection with the empty intervall is empty
@@ -558,7 +558,7 @@
 
 
 template<class SubType,
- class DomainT, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Alloc>
+ class DomainT, template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_ALLOC Alloc>
 interval_base_set<SubType,DomainT,Interval,Compare,Alloc>& interval_base_set<SubType,DomainT,Interval,Compare,Alloc>::join()
 {
     iterator it=_set.begin();
@@ -601,7 +601,7 @@
 
 
 template<class SubType,
- class DomainT, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Alloc>
+ class DomainT, template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_ALLOC Alloc>
 void interval_base_set<SubType,DomainT,Interval,Compare,Alloc>::uniform_bounds(typename interval<DomainT>::bound_types bt)
 {
     // I can do this only, because I am shure that the contents and the
@@ -611,7 +611,7 @@
 
 
 template<class SubType,
- class DomainT, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Alloc>
+ class DomainT, template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_ALLOC Alloc>
 inline bool operator == (const interval_base_set<SubType,DomainT,Interval,Compare,Alloc>& lhs,
                          const interval_base_set<SubType,DomainT,Interval,Compare,Alloc>& rhs)
 {
@@ -624,7 +624,7 @@
 }
 
 template<class SubType,
- class DomainT, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Alloc>
+ class DomainT, template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_ALLOC Alloc>
 inline bool operator < (const interval_base_set<SubType,DomainT,Interval,Compare,Alloc>& lhs,
                         const interval_base_set<SubType,DomainT,Interval,Compare,Alloc>& rhs)
 {
@@ -633,7 +633,7 @@
 }
 
 template<class SubType,
- class DomainT, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Alloc>
+ class DomainT, template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_ALLOC Alloc>
 inline bool operator <= (const interval_base_set<SubType,DomainT,Interval,Compare,Alloc>& lhs,
                          const interval_base_set<SubType,DomainT,Interval,Compare,Alloc>& rhs)
 {
@@ -642,8 +642,8 @@
 
 
 template<class CharType, class CharTraits,
- class SubType, class DomainT, template<class, template<class>class>class Interval,
- template<class>class Compare, template<class>class Alloc>
+ class SubType, class DomainT, template<class,ITL_COMPARE>class Interval,
+ ITL_COMPARE Compare, ITL_ALLOC Alloc>
 std::basic_ostream<CharType, CharTraits>& operator <<
   (std::basic_ostream<CharType, CharTraits>& stream,
    const interval_base_set<SubType,DomainT,Interval,Compare,Alloc>& object)

Modified: sandbox/itl/boost/itl/interval_map.hpp
==============================================================================
--- sandbox/itl/boost/itl/interval_map.hpp (original)
+++ sandbox/itl/boost/itl/interval_map.hpp 2008-11-29 08:44:20 EST (Sat, 29 Nov 2008)
@@ -107,10 +107,10 @@
     typename DomainT,
     typename CodomainT,
     class Traits = itl::neutron_absorber,
- template<class, template<class>class>class Interval = itl::interval,
- template<class>class Compare = std::less,
- template<class>class Combine = itl::inplace_plus,
- template<class>class Alloc = std::allocator
+ template<class,ITL_COMPARE>class Interval = itl::interval,
+ ITL_COMPARE Compare = std::less,
+ ITL_COMPARE Combine = itl::inplace_plus,
+ ITL_ALLOC Alloc = std::allocator
>
 class interval_map:
     public interval_base_map<interval_map<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>,
@@ -182,7 +182,7 @@
     void add_(const value_type&, const Combiner&);
 
     void add_(const value_type& value)
- { add_(value, inplace_plus<CodomainT>()); }
+ { add_(value, Combine<CodomainT>()); }
 
     template<class Combiner>
     void subtract_(const value_type&, const Combiner&);
@@ -240,7 +240,7 @@
 } ;
 
 
-template <typename DomainT, typename CodomainT, class Traits, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Combine, template<class>class Alloc>
+template <typename DomainT, typename CodomainT, class Traits, template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_COMPARE Combine, ITL_ALLOC Alloc>
 bool interval_map<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
     ::contains_(const value_type& interv_value)const
 {
@@ -255,7 +255,7 @@
 
 
 template <typename DomainT, typename CodomainT, class Traits,
- template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Combine, template<class>class Alloc>
+ template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_COMPARE Combine, ITL_ALLOC Alloc>
 bool interval_map<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
     ::joinable(const iterator& some, const iterator& next)const
 {
@@ -265,7 +265,7 @@
 }
 
 template <typename DomainT, typename CodomainT, class Traits,
- template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Combine, template<class>class Alloc>
+ template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_COMPARE Combine, ITL_ALLOC Alloc>
 typename interval_map<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>::iterator
     interval_map<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
     ::joint_insert(iterator& left_it, const iterator& right_it)
@@ -295,7 +295,7 @@
 
 
 template <typename DomainT, typename CodomainT, class Traits,
- template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Combine, template<class>class Alloc>
+ template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_COMPARE Combine, ITL_ALLOC Alloc>
 bool interval_map<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
     ::join_left(iterator& it)
 {
@@ -317,7 +317,7 @@
 }
 
 template <typename DomainT, typename CodomainT, class Traits,
- template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Combine, template<class>class Alloc>
+ template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_COMPARE Combine, ITL_ALLOC Alloc>
 bool interval_map<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
     ::join_right(iterator& it)
 {
@@ -339,7 +339,7 @@
 
 
 template <typename DomainT, typename CodomainT, class Traits,
- template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Combine, template<class>class Alloc>
+ template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_COMPARE Combine, ITL_ALLOC Alloc>
 typename interval_map<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>::iterator
 interval_map<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
     ::fill_join_left(const value_type& value)
@@ -358,7 +358,7 @@
 }
 
 template <typename DomainT, typename CodomainT, class Traits,
- template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Combine, template<class>class Alloc>
+ template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_COMPARE Combine, ITL_ALLOC Alloc>
 typename interval_map<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>::iterator
 interval_map<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
     ::fill_join_both(const value_type& value)
@@ -378,7 +378,7 @@
 
 //-----------------------------------------------------------------------------
 template <typename DomainT, typename CodomainT, class Traits,
- template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Combine, template<class>class Alloc>
+ template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_COMPARE Combine, ITL_ALLOC Alloc>
     template<class Combiner>
 typename interval_map<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>::iterator
 interval_map<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
@@ -406,7 +406,7 @@
 }
 
 template <typename DomainT, typename CodomainT, class Traits,
- template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Combine, template<class>class Alloc>
+ template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_COMPARE Combine, ITL_ALLOC Alloc>
     template<class Combiner>
 typename interval_map<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>::iterator
 interval_map<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
@@ -437,7 +437,7 @@
 //-----------------------------------------------------------------------------
 // add<Combinator>(pair(interval,value)):
 //-----------------------------------------------------------------------------
-template <typename DomainT, typename CodomainT, class Traits, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Combine, template<class>class Alloc>
+template <typename DomainT, typename CodomainT, class Traits, template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_COMPARE Combine, ITL_ALLOC Alloc>
     template<class Combiner>
 void interval_map<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
     ::add_(const value_type& x, const Combiner& combine)
@@ -536,7 +536,7 @@
     }
 }
 
-template <typename DomainT, typename CodomainT, class Traits, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Combine, template<class>class Alloc>
+template <typename DomainT, typename CodomainT, class Traits, template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_COMPARE Combine, ITL_ALLOC Alloc>
     template<class Combiner>
 void interval_map<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
     ::add_rest(const interval_type& x_itv, const CodomainT& x_val, iterator& it, iterator& end_it, const Combiner& combine)
@@ -569,7 +569,7 @@
     add_rear(x_rest, x_val, it, combine);
 }
 
-template <typename DomainT, typename CodomainT, class Traits, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Combine, template<class>class Alloc>
+template <typename DomainT, typename CodomainT, class Traits, template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_COMPARE Combine, ITL_ALLOC Alloc>
     template<class Combiner>
 void interval_map<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
     ::add_rear(const interval_type& x_rest, const CodomainT& x_val, iterator& it, const Combiner& combine)
@@ -611,7 +611,7 @@
 //-----------------------------------------------------------------------------
 // subtract<Combinator>(pair(interval,value)):
 //-----------------------------------------------------------------------------
-template <typename DomainT, typename CodomainT, class Traits, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Combine, template<class>class Alloc>
+template <typename DomainT, typename CodomainT, class Traits, template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_COMPARE Combine, ITL_ALLOC Alloc>
     template<class Combiner>
 void interval_map<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
     ::subtract_(const value_type& x, const Combiner& combine)
@@ -680,7 +680,7 @@
 
 
 
-template <typename DomainT, typename CodomainT, class Traits, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Combine, template<class>class Alloc>
+template <typename DomainT, typename CodomainT, class Traits, template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_COMPARE Combine, ITL_ALLOC Alloc>
     template<class Combiner>
 void interval_map<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
     ::subtract_rest(const interval_type& x_itv, const CodomainT& x_val, iterator& it, iterator& end_it, const Combiner& combine)
@@ -751,8 +751,8 @@
 //-----------------------------------------------------------------------------
 // insert(pair(interval,value)):
 //-----------------------------------------------------------------------------
-template <typename DomainT, typename CodomainT, class Traits, template<class, template<class>class>class Interval,
- template<class>class Compare, template<class>class Combine, template<class>class Alloc>
+template <typename DomainT, typename CodomainT, class Traits, template<class,ITL_COMPARE>class Interval,
+ ITL_COMPARE Compare, ITL_COMPARE Combine, ITL_ALLOC Alloc>
 void interval_map<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
     ::insert_(const value_type& x)
 {
@@ -816,8 +816,8 @@
 }
 
 
-template <typename DomainT, typename CodomainT, class Traits, template<class, template<class>class>class Interval,
- template<class>class Compare, template<class>class Combine, template<class>class Alloc>
+template <typename DomainT, typename CodomainT, class Traits, template<class,ITL_COMPARE>class Interval,
+ ITL_COMPARE Compare, ITL_COMPARE Combine, ITL_ALLOC Alloc>
 void interval_map<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
     ::insert_rest(const interval_type& x_itv, const CodomainT& x_val,
                   iterator& it, iterator& end_it)
@@ -844,8 +844,8 @@
     insert_rear(x_rest, x_val, it);
 }
 
-template <typename DomainT, typename CodomainT, class Traits, template<class, template<class>class>class Interval,
- template<class>class Compare, template<class>class Combine, template<class>class Alloc>
+template <typename DomainT, typename CodomainT, class Traits, template<class,ITL_COMPARE>class Interval,
+ ITL_COMPARE Compare, ITL_COMPARE Combine, ITL_ALLOC Alloc>
 void interval_map<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
     ::insert_rear(const interval_type& x_rest, const CodomainT& x_val,
                   iterator& it)
@@ -875,7 +875,7 @@
 //-----------------------------------------------------------------------------
 // erase(pair(interval,value)):
 //-----------------------------------------------------------------------------
-template <typename DomainT, typename CodomainT, class Traits, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Combine, template<class>class Alloc>
+template <typename DomainT, typename CodomainT, class Traits, template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_COMPARE Combine, ITL_ALLOC Alloc>
 void interval_map<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
     ::erase_(const value_type& x)
 {
@@ -934,7 +934,7 @@
 }
 
 
-template <typename DomainT, typename CodomainT, class Traits, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Combine, template<class>class Alloc>
+template <typename DomainT, typename CodomainT, class Traits, template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_COMPARE Combine, ITL_ALLOC Alloc>
 void interval_map<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
     ::erase_rest(const interval_type& x_itv, const CodomainT& x_val,
                  iterator& it, iterator& end_it)

Modified: sandbox/itl/boost/itl/interval_maps.hpp
==============================================================================
--- sandbox/itl/boost/itl/interval_maps.hpp (original)
+++ sandbox/itl/boost/itl/interval_maps.hpp 2008-11-29 08:44:20 EST (Sat, 29 Nov 2008)
@@ -16,8 +16,8 @@
 
 template
 <
- class, class, class, template<class,template<class>class>class,
- template<class>class, template<class>class, template<class>class
+ class, class, class, template<class,ITL_COMPARE>class,
+ ITL_COMPARE, ITL_COMBINE, ITL_ALLOC
>
 class interval_map;
 
@@ -28,12 +28,12 @@
 template
 <
     class SubType, class DomainT, class CodomainT,
- class Traits, template<class,template<class>class>class Interval,
- template<class>class Compare, template<class>class Combine, template<class>class Alloc,
+ class Traits, template<class,ITL_COMPARE>class Interval,
+ ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc,
     template
     <
- class, class, class, template<class,template<class>class>class,
- template<class>class, template<class>class, template<class>class
+ class, class, class, template<class,ITL_COMPARE>class,
+ ITL_COMPARE, ITL_COMBINE, ITL_ALLOC
>
     class IntervalMap
>
@@ -58,12 +58,12 @@
 template
 <
     class DomainT, class CodomainT,
- class Traits, template<class,template<class>class>class Interval,
- template<class>class Compare, template<class>class Combine, template<class>class Alloc,
+ class Traits, template<class,ITL_COMPARE>class Interval,
+ ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc,
     template
     <
- class, class, class, template<class,template<class>class>class,
- template<class>class, template<class>class, template<class>class
+ class, class, class, template<class,ITL_COMPARE>class,
+ ITL_COMPARE, ITL_COMBINE, ITL_ALLOC
>
     class IntervalMap
>
@@ -98,12 +98,12 @@
 template
 <
     class DomainT, class CodomainT,
- class Traits, template<class,template<class>class>class Interval,
- template<class>class Compare, template<class>class Combine, template<class>class Alloc,
+ class Traits, template<class,ITL_COMPARE>class Interval,
+ ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc,
     template
     <
- class, class, class, template<class,template<class>class>class,
- template<class>class, template<class>class, template<class>class
+ class, class, class, template<class,ITL_COMPARE>class,
+ ITL_COMPARE, ITL_COMBINE, ITL_ALLOC
>
     class IntervalMap
>
@@ -127,12 +127,12 @@
 template
 <
     class SubType, class DomainT, class CodomainT,
- class Traits, template<class,template<class>class>class Interval,
- template<class>class Compare, template<class>class Combine, template<class>class Alloc,
+ class Traits, template<class,ITL_COMPARE>class Interval,
+ ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc,
     template
     <
- class, class, class, template<class,template<class>class>class,
- template<class>class, template<class>class, template<class>class
+ class, class, class, template<class,ITL_COMPARE>class,
+ ITL_COMPARE, ITL_COMBINE, ITL_ALLOC
>
     class IntervalMap
>
@@ -169,12 +169,12 @@
 template
 <
     class DomainT, class CodomainT,
- class Traits, template<class,template<class>class>class Interval,
- template<class>class Compare, template<class>class Combine, template<class>class Alloc,
+ class Traits, template<class,ITL_COMPARE>class Interval,
+ ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc,
     template
     <
- class, class, class, template<class,template<class>class>class,
- template<class>class, template<class>class, template<class>class
+ class, class, class, template<class,ITL_COMPARE>class,
+ ITL_COMPARE, ITL_COMBINE, ITL_ALLOC
>
     class IntervalMap
>
@@ -195,12 +195,12 @@
 template
 <
     class DomainT, class CodomainT,
- class Traits, template<class,template<class>class>class Interval,
- template<class>class Compare, template<class>class Combine, template<class>class Alloc,
+ class Traits, template<class,ITL_COMPARE>class Interval,
+ ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc,
     template
     <
- class, class, class, template<class,template<class>class>class,
- template<class>class, template<class>class, template<class>class
+ class, class, class, template<class,ITL_COMPARE>class,
+ ITL_COMPARE, ITL_COMBINE, ITL_ALLOC
>
     class IntervalMap
>
@@ -224,12 +224,12 @@
 template
 <
     class SubType, class DomainT, class CodomainT,
- class Traits, template<class,template<class>class>class Interval,
- template<class>class Compare, template<class>class Combine, template<class>class Alloc,
+ class Traits, template<class,ITL_COMPARE>class Interval,
+ ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc,
     template
     <
- class, template<class,template<class>class>class,
- template<class>class, template<class>class
+ class, template<class,ITL_COMPARE>class,
+ ITL_COMPARE, ITL_ALLOC
>
     class IntervalSet
>
@@ -252,12 +252,12 @@
 template
 <
     class DomainT, class CodomainT,
- class Traits, template<class,template<class>class>class Interval,
- template<class>class Compare, template<class>class Combine, template<class>class Alloc,
+ class Traits, template<class,ITL_COMPARE>class Interval,
+ ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc,
     template
     <
- class, class, class, template<class,template<class>class>class,
- template<class>class, template<class>class, template<class>class
+ class, class, class, template<class,ITL_COMPARE>class,
+ ITL_COMPARE, ITL_COMBINE, ITL_ALLOC
>
     class IntervalMap
>
@@ -281,8 +281,8 @@
 template
 <
     class SubType, class DomainT, class CodomainT,
- class Traits, template<class,template<class>class>class Interval,
- template<class>class Compare, template<class>class Combine, template<class>class Alloc,
+ class Traits, template<class,ITL_COMPARE>class Interval,
+ ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc,
     class OperandT
>
 interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>&
@@ -304,8 +304,8 @@
 template
 <
     class SubType, class DomainT, class CodomainT,
- class Traits, template<class,template<class>class>class Interval,
- template<class>class Compare, template<class>class Combine, template<class>class Alloc,
+ class Traits, template<class,ITL_COMPARE>class Interval,
+ ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc,
     class OperandT
>
 interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>&
@@ -327,8 +327,8 @@
 template
 <
     class SubType, class DomainT, class CodomainT,
- class Traits, template<class,template<class>class>class Interval,
- template<class>class Compare, template<class>class Combine, template<class>class Alloc,
+ class Traits, template<class,ITL_COMPARE>class Interval,
+ ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc,
     class SectanT
>
 interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>&
@@ -353,18 +353,18 @@
 template
 <
     class DomainT, class CodomainT,
- class Traits, template<class,template<class>class>class Interval,
- template<class>class Compare, template<class>class Combine, template<class>class Alloc,
+ class Traits, template<class,ITL_COMPARE>class Interval,
+ ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc,
     template
     <
- class, class, class, template<class,template<class>class>class,
- template<class>class, template<class>class, template<class>class
+ class, class, class, template<class,ITL_COMPARE>class,
+ ITL_COMPARE, ITL_COMBINE, ITL_ALLOC
>
     class LeftIntervalMap,
     template
     <
- class, class, class, template<class,template<class>class>class,
- template<class>class, template<class>class, template<class>class
+ class, class, class, template<class,ITL_COMPARE>class,
+ ITL_COMPARE, ITL_COMBINE, ITL_ALLOC
>
     class RightIntervalMap
>
@@ -388,12 +388,12 @@
 template
 <
     class SubType, class DomainT, class CodomainT,
- class Traits, template<class,template<class>class>class Interval,
- template<class>class Compare, template<class>class Combine, template<class>class Alloc,
+ class Traits, template<class,ITL_COMPARE>class Interval,
+ ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc,
     template
     <
- class, class, class, template<class,template<class>class>class,
- template<class>class, template<class>class, template<class>class
+ class, class, class, template<class,ITL_COMPARE>class,
+ ITL_COMPARE, ITL_COMBINE, ITL_ALLOC
>
     class IntervalMap
>
@@ -437,12 +437,12 @@
 template
 <
     class SubType, class DomainT, class CodomainT,
- class Traits, template<class,template<class>class>class Interval,
- template<class>class Compare, template<class>class Alloc,
+ class Traits, template<class,ITL_COMPARE>class Interval,
+ ITL_COMPARE Compare, ITL_ALLOC Alloc,
     template
     <
- class, template<class,template<class>class>class,
- template<class>class, template<class>class
+ class, template<class,ITL_COMPARE>class,
+ ITL_COMPARE, ITL_ALLOC
>
     class IntervalSet
>
@@ -483,18 +483,18 @@
 template
 <
     class DomainT, class CodomainT,
- class Traits, template<class,template<class>class>class Interval,
- template<class>class Compare, template<class>class Combine, template<class>class Alloc,
+ class Traits, template<class,ITL_COMPARE>class Interval,
+ ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc,
     template
     <
- class, class, class, template<class,template<class>class>class,
- template<class>class, template<class>class, template<class>class
+ class, class, class, template<class,ITL_COMPARE>class,
+ ITL_COMPARE, ITL_COMBINE, ITL_ALLOC
>
     class IntervalMap,
     template
     <
- class, template<class,template<class>class>class,
- template<class>class, template<class>class
+ class, template<class,ITL_COMPARE>class,
+ ITL_COMPARE, ITL_ALLOC
>
     class IntervalSet
>
@@ -534,18 +534,18 @@
 template
 <
     class DomainT, class CodomainT,
- class Traits, template<class,template<class>class>class Interval,
- template<class>class Compare, template<class>class Combine, template<class>class Alloc,
+ class Traits, template<class,ITL_COMPARE>class Interval,
+ ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc,
     template
     <
- class, class, class, template<class,template<class>class>class,
- template<class>class, template<class>class, template<class>class
+ class, class, class, template<class,ITL_COMPARE>class,
+ ITL_COMPARE, ITL_COMBINE, ITL_ALLOC
>
     class IntervalMap,
     template
     <
- class, template<class,template<class>class>class,
- template<class>class, template<class>class
+ class, template<class,ITL_COMPARE>class,
+ ITL_COMPARE, ITL_ALLOC
>
     class IntervalSet
>
@@ -566,12 +566,12 @@
 template
 <
     class DomainT, class CodomainT,
- class Traits, template<class,template<class>class>class Interval,
- template<class>class Compare, template<class>class Combine, template<class>class Alloc,
+ class Traits, template<class,ITL_COMPARE>class Interval,
+ ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc,
     template
     <
- class, class, class, template<class,template<class>class>class,
- template<class>class, template<class>class, template<class>class
+ class, class, class, template<class,ITL_COMPARE>class,
+ ITL_COMPARE, ITL_COMBINE, ITL_ALLOC
>
     class IntervalMap
>
@@ -589,8 +589,8 @@
 template
 <
     class SubType, class DomainT, class CodomainT,
- class Traits, template<class,template<class>class>class Interval,
- template<class>class Compare, template<class>class Combine, template<class>class Alloc
+ class Traits, template<class,ITL_COMPARE>class Interval,
+ ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc
>
 typename interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>::interval_type
 enclosure(const interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>& object)

Modified: sandbox/itl/boost/itl/interval_set.hpp
==============================================================================
--- sandbox/itl/boost/itl/interval_set.hpp (original)
+++ sandbox/itl/boost/itl/interval_set.hpp 2008-11-29 08:44:20 EST (Sat, 29 Nov 2008)
@@ -102,11 +102,11 @@
 
 template
 <
- typename DomainT,
- template<class, template<class>class>class
- Interval = itl::interval,
- template<class>class Compare = std::less,
- template<class>class Alloc = std::allocator
+ typename DomainT,
+ template<class,ITL_COMPARE>class
+ Interval = itl::interval,
+ ITL_COMPARE Compare = std::less,
+ ITL_ALLOC Alloc = std::allocator
>
 class interval_set:
     public interval_base_set<interval_set<DomainT,Interval,Compare,Alloc>,
@@ -223,7 +223,7 @@
 
 
 
-template <typename DomainT, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Alloc>
+template <typename DomainT, template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_ALLOC Alloc>
 bool interval_set<DomainT,Interval,Compare,Alloc>::contains_(const interval_type& x)const
 {
     // Emptiness is contained in everything
@@ -245,7 +245,7 @@
 }
 
 
-template <typename DomainT, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Alloc>
+template <typename DomainT, template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_ALLOC Alloc>
 void interval_set<DomainT,Interval,Compare,Alloc>::handle_neighbours(const iterator& it)
 {
     if(it == this->_set.begin())
@@ -286,7 +286,7 @@
 
 
 
-template <typename DomainT, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Alloc>
+template <typename DomainT, template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_ALLOC Alloc>
 typename interval_set<DomainT,Interval,Compare,Alloc>::iterator
     interval_set<DomainT,Interval,Compare,Alloc>
     ::joint_insert(const iterator& left_it, const iterator& right_it)
@@ -307,7 +307,7 @@
 }
 
 
-template<class DomainT, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Alloc>
+template<class DomainT, template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_ALLOC Alloc>
 void interval_set<DomainT,Interval,Compare,Alloc>::add_(const value_type& x)
 {
     if(x.empty()) return;
@@ -340,7 +340,7 @@
 }
 
 
-template<class DomainT, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Alloc>
+template<class DomainT, template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_ALLOC Alloc>
 void interval_set<DomainT,Interval,Compare,Alloc>::subtract_(const value_type& x)
 {
     if(x.empty()) return;
@@ -366,8 +366,8 @@
 //-----------------------------------------------------------------------------
 // equality of elements
 //-----------------------------------------------------------------------------
-template <typename DomainT, template<class, template<class>class>class Interval,
- template<class>class Compare, template<class>class Alloc>
+template <typename DomainT, template<class,ITL_COMPARE>class Interval,
+ ITL_COMPARE Compare, ITL_ALLOC Alloc>
 inline bool is_element_equal(const interval_set<DomainT,Interval,Compare,Alloc>& lhs,
                              const interval_set<DomainT,Interval,Compare,Alloc>& rhs)
 {

Modified: sandbox/itl/boost/itl/interval_sets.hpp
==============================================================================
--- sandbox/itl/boost/itl/interval_sets.hpp (original)
+++ sandbox/itl/boost/itl/interval_sets.hpp 2008-11-29 08:44:20 EST (Sat, 29 Nov 2008)
@@ -14,8 +14,8 @@
 namespace boost{namespace itl
 {
 
-template<typename, template<class,template<class>class>class,
- template<class>class, template<class>class>
+template<typename, template<class,ITL_COMPARE>class,
+ ITL_COMPARE, ITL_ALLOC>
 class interval_set;
 
 //-----------------------------------------------------------------------------
@@ -23,12 +23,12 @@
 //-----------------------------------------------------------------------------
 template
 <
- class SubType, class DomainT, template<class,template<class>class>class Interval,
- template<class>class Compare, template<class>class Alloc,
+ class SubType, class DomainT, template<class,ITL_COMPARE>class Interval,
+ ITL_COMPARE Compare, ITL_ALLOC Alloc,
     template
     <
- class, template<class,template<class>class>class,
- template<class>class, template<class>class
+ class, template<class,ITL_COMPARE>class,
+ ITL_COMPARE, ITL_ALLOC
>
     class IntervalSet
>
@@ -49,12 +49,12 @@
 //--- interval_type -----------------------------------------------------------
 template
 <
- class DomainT, template<class,template<class>class>class Interval,
- template<class>class Compare, template<class>class Alloc,
+ class DomainT, template<class,ITL_COMPARE>class Interval,
+ ITL_COMPARE Compare, ITL_ALLOC Alloc,
     template
     <
- class, template<class,template<class>class>class,
- template<class>class, template<class>class
+ class, template<class,ITL_COMPARE>class,
+ ITL_COMPARE, ITL_ALLOC
>
     class IntervalSet
>
@@ -71,12 +71,12 @@
 //--- domain_type -------------------------------------------------------------
 template
 <
- class DomainT, template<class,template<class>class>class Interval,
- template<class>class Compare, template<class>class Alloc,
+ class DomainT, template<class,ITL_COMPARE>class Interval,
+ ITL_COMPARE Compare, ITL_ALLOC Alloc,
     template
     <
- class, template<class,template<class>class>class,
- template<class>class, template<class>class
+ class, template<class,ITL_COMPARE>class,
+ ITL_COMPARE, ITL_ALLOC
>
     class IntervalSet
>
@@ -96,12 +96,12 @@
 //-----------------------------------------------------------------------------
 template
 <
- class SubType, class DomainT, template<class,template<class>class>class Interval,
- template<class>class Compare, template<class>class Alloc,
+ class SubType, class DomainT, template<class,ITL_COMPARE>class Interval,
+ ITL_COMPARE Compare, ITL_ALLOC Alloc,
     template
     <
- class, template<class,template<class>class>class,
- template<class>class, template<class>class
+ class, template<class,ITL_COMPARE>class,
+ ITL_COMPARE, ITL_ALLOC
>
     class IntervalSet
>
@@ -122,12 +122,12 @@
 //--- interval_type -----------------------------------------------------------
 template
 <
- class DomainT, template<class,template<class>class>class Interval,
- template<class>class Compare, template<class>class Alloc,
+ class DomainT, template<class,ITL_COMPARE>class Interval,
+ ITL_COMPARE Compare, ITL_ALLOC Alloc,
     template
     <
- class, template<class,template<class>class>class,
- template<class>class, template<class>class
+ class, template<class,ITL_COMPARE>class,
+ ITL_COMPARE, ITL_ALLOC
>
     class IntervalSet
>
@@ -144,12 +144,12 @@
 //--- domain_type -------------------------------------------------------------
 template
 <
- class DomainT, template<class,template<class>class>class Interval,
- template<class>class Compare, template<class>class Alloc,
+ class DomainT, template<class,ITL_COMPARE>class Interval,
+ ITL_COMPARE Compare, ITL_ALLOC Alloc,
     template
     <
- class, template<class,template<class>class>class,
- template<class>class, template<class>class
+ class, template<class,ITL_COMPARE>class,
+ ITL_COMPARE, ITL_ALLOC
>
     class IntervalSet
>
@@ -169,12 +169,12 @@
 //-----------------------------------------------------------------------------
 template
 <
- class SubType, class DomainT, template<class,template<class>class>class Interval,
- template<class>class Compare, template<class>class Alloc,
+ class SubType, class DomainT, template<class,ITL_COMPARE>class Interval,
+ ITL_COMPARE Compare, ITL_ALLOC Alloc,
     template
     <
- class, template<class,template<class>class>class,
- template<class>class, template<class>class
+ class, template<class,ITL_COMPARE>class,
+ ITL_COMPARE, ITL_ALLOC
>
     class IntervalSet
>
@@ -216,12 +216,12 @@
 //--- interval_type -----------------------------------------------------------
 template
 <
- class DomainT, template<class,template<class>class>class Interval,
- template<class>class Compare, template<class>class Alloc,
+ class DomainT, template<class,ITL_COMPARE>class Interval,
+ ITL_COMPARE Compare, ITL_ALLOC Alloc,
     template
     <
- class, template<class,template<class>class>class,
- template<class>class, template<class>class
+ class, template<class,ITL_COMPARE>class,
+ ITL_COMPARE, ITL_ALLOC
>
     class IntervalSet
>
@@ -249,12 +249,12 @@
 //--- domain_type -------------------------------------------------------------
 template
 <
- class DomainT, template<class,template<class>class>class Interval,
- template<class>class Compare, template<class>class Alloc,
+ class DomainT, template<class,ITL_COMPARE>class Interval,
+ ITL_COMPARE Compare, ITL_ALLOC Alloc,
     template
     <
- class, template<class,template<class>class>class,
- template<class>class, template<class>class
+ class, template<class,ITL_COMPARE>class,
+ ITL_COMPARE, ITL_ALLOC
>
     class IntervalSet
>
@@ -275,12 +275,12 @@
 //-----------------------------------------------------------------------------
 template
 <
- class SubType, class DomainT, template<class,template<class>class>class Interval,
- template<class>class Compare, template<class>class Alloc,
+ class SubType, class DomainT, template<class,ITL_COMPARE>class Interval,
+ ITL_COMPARE Compare, ITL_ALLOC Alloc,
     template
     <
- class, template<class,template<class>class>class,
- template<class>class, template<class>class
+ class, template<class,ITL_COMPARE>class,
+ ITL_COMPARE, ITL_ALLOC
>
     class IntervalSet
>
@@ -300,12 +300,12 @@
 //-----------------------------------------------------------------------------
 template
 <
- class SubType, class DomainT, template<class,template<class>class>class Interval,
- template<class>class Compare, template<class>class Alloc,
+ class SubType, class DomainT, template<class,ITL_COMPARE>class Interval,
+ ITL_COMPARE Compare, ITL_ALLOC Alloc,
     template
     <
- class, template<class,template<class>class>class,
- template<class>class, template<class>class
+ class, template<class,ITL_COMPARE>class,
+ ITL_COMPARE, ITL_ALLOC
>
     class IntervalSet
>
@@ -342,12 +342,12 @@
 template
 <
     class SubType, class DomainT, class CodomainT,
- class Traits, template<class,template<class>class>class Interval,
- template<class>class Compare, template<class>class Alloc,
+ class Traits, template<class,ITL_COMPARE>class Interval,
+ ITL_COMPARE Compare, ITL_ALLOC Alloc,
     template
     <
- class, class, class, template<class,template<class>class>class,
- template<class>class, template<class>class
+ class, class, class, template<class,ITL_COMPARE>class,
+ ITL_COMPARE, ITL_ALLOC
>
     class IntervalMap
>
@@ -391,12 +391,12 @@
 //-----------------------------------------------------------------------------
 template
 <
- class SubType, class DomainT, template<class,template<class>class>class Interval,
- template<class>class Compare, template<class>class Alloc,
+ class SubType, class DomainT, template<class,ITL_COMPARE>class Interval,
+ ITL_COMPARE Compare, ITL_ALLOC Alloc,
     template
     <
- class, template<class,template<class>class>class,
- template<class>class, template<class>class
+ class, template<class,ITL_COMPARE>class,
+ ITL_COMPARE, ITL_ALLOC
>
     class IntervalSet
>
@@ -415,12 +415,12 @@
 //-----------------------------------------------------------------------------
 template
 <
- class SubType, class DomainT, template<class,template<class>class>class Interval,
- template<class>class Compare, template<class>class Alloc,
+ class SubType, class DomainT, template<class,ITL_COMPARE>class Interval,
+ ITL_COMPARE Compare, ITL_ALLOC Alloc,
     template
     <
- class, template<class,template<class>class>class,
- template<class>class, template<class>class
+ class, template<class,ITL_COMPARE>class,
+ ITL_COMPARE, ITL_ALLOC
>
     class IntervalSet
>
@@ -440,12 +440,12 @@
 //-----------------------------------------------------------------------------
 template
 <
- class DomainT, template<class,template<class>class>class Interval,
- template<class>class Compare, template<class>class Alloc,
+ class DomainT, template<class,ITL_COMPARE>class Interval,
+ ITL_COMPARE Compare, ITL_ALLOC Alloc,
     template
     <
- class, template<class,template<class>class>class,
- template<class>class, template<class>class
+ class, template<class,ITL_COMPARE>class,
+ ITL_COMPARE, ITL_ALLOC
>
     class IntervalSet
>
@@ -461,8 +461,8 @@
 
 template
 <
- class SubType, class DomainT, template<class,template<class>class>class Interval,
- template<class>class Compare, template<class>class Alloc
+ class SubType, class DomainT, template<class,ITL_COMPARE>class Interval,
+ ITL_COMPARE Compare, ITL_ALLOC Alloc
>
 typename interval_base_set<SubType,DomainT,Interval,Compare,Alloc>::interval_type
 enclosure(const interval_base_set<SubType,DomainT,Interval,Compare,Alloc>& object)

Modified: sandbox/itl/boost/itl/map.hpp
==============================================================================
--- sandbox/itl/boost/itl/map.hpp (original)
+++ sandbox/itl/boost/itl/map.hpp 2008-11-29 08:44:20 EST (Sat, 29 Nov 2008)
@@ -103,9 +103,9 @@
         typename KeyT,
         typename DataT,
         class Traits = itl::neutron_absorber,
- template<class>class Compare = std::less,
- template<class>class Combine = itl::inplace_plus,
- template<class>class Alloc = std::allocator
+ ITL_COMPARE Compare = std::less,
+ ITL_COMBINE Combine = itl::inplace_plus,
+ ITL_ALLOC Alloc = std::allocator
>
     class map: private std::map<KeyT, DataT, Compare<KeyT>,
                                 Alloc<std::pair<const KeyT, DataT> > >
@@ -217,9 +217,9 @@
             not exist in the map.
             If \c value_pairs's key value exists in the map, it's data
             value is added to the data value already found in the map. */
- iterator add(const value_type& value_pair) { return add<inplace_plus>(value_pair); }
+ iterator add(const value_type& value_pair) { return add<Combine>(value_pair); }
 
- template<template<class>class Combinator>
+ template<ITL_COMBINE Combiner>
         iterator add(const value_type& value_pair);
 
         iterator operator += (const value_type& value_pair) { return add(value_pair); }
@@ -315,7 +315,7 @@
 
     /** Standard equality, which is lexicographical equality of the sets
         as sequences, that are given by their Compare order. */
- template <typename KeyT, typename DataT, class Traits, template<class>class Compare, template<class>class Combine, template<class>class Alloc>
+ template <typename KeyT, typename DataT, class Traits, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc>
     inline bool operator == (const itl::map<KeyT,DataT,Traits,Compare,Combine,Alloc>& lhs,
                              const itl::map<KeyT,DataT,Traits,Compare,Combine,Alloc>& rhs)
     {
@@ -324,7 +324,7 @@
     }
 
     //JODO comment...
- template <typename KeyT, typename DataT, class Traits, template<class>class Compare, template<class>class Combine, template<class>class Alloc>
+ template <typename KeyT, typename DataT, class Traits, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc>
     inline bool is_element_equal(const itl::map<KeyT,DataT,Traits,Compare,Combine,Alloc>& lhs,
                                  const itl::map<KeyT,DataT,Traits,Compare,Combine,Alloc>& rhs)
     {
@@ -333,7 +333,7 @@
     }
 
     /** Protonic equality is equality on all elements that do not carry a neutron as content. */
- template <typename KeyT, typename DataT, class Traits, template<class>class Compare, template<class>class Combine, template<class>class Alloc>
+ template <typename KeyT, typename DataT, class Traits, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc>
     inline bool is_protonic_equal (const itl::map<KeyT,DataT,Traits,Compare,Combine,Alloc>& lhs,
                                    const itl::map<KeyT,DataT,Traits,Compare,Combine,Alloc>& rhs)
     {
@@ -348,7 +348,7 @@
     }
 
     /** Strict weak less ordering which is given by the Compare order */
- template <typename KeyT, typename DataT, class Traits, template<class>class Compare, template<class>class Combine, template<class>class Alloc>
+ template <typename KeyT, typename DataT, class Traits, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc>
     inline bool operator < (const itl::map<KeyT,DataT,Traits,Compare,Combine,Alloc>& lhs,
         const itl::map<KeyT,DataT,Traits,Compare,Combine,Alloc>& rhs)
     {
@@ -357,7 +357,7 @@
     }
 
     /** Partial ordering which is induced by Compare */
- template <typename KeyT, typename DataT, class Traits, template<class>class Compare, template<class>class Combine, template<class>class Alloc>
+ template <typename KeyT, typename DataT, class Traits, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc>
     inline bool operator <= (const itl::map<KeyT,DataT,Traits,Compare,Combine,Alloc>& lhs,
         const itl::map<KeyT,DataT,Traits,Compare,Combine,Alloc>& rhs)
     {
@@ -365,8 +365,8 @@
         return operator<=((const base_type&)lhs, (const base_type&)rhs);
     }
 
- template <typename KeyT, typename DataT, class Traits, template<class>class Compare, template<class>class Combine, template<class>class Alloc>
- template <template<class>class Combinator>
+ template <typename KeyT, typename DataT, class Traits, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc>
+ template <ITL_COMBINE Combiner>
     typename map<KeyT,DataT,Traits,Compare,Combine,Alloc>::iterator
         map<KeyT,DataT,Traits,Compare,Combine,Alloc>::add(const value_type& val)
     {
@@ -377,7 +377,7 @@
         if(Traits::emits_neutrons)
         {
             DataT added_val = DataT();
- Combinator<DataT>()(added_val, val.CONT_VALUE);
+ Combiner<DataT>()(added_val, val.CONT_VALUE);
             insertion = insert(value_type(val.KEY_VALUE, added_val));
         }
         else // Existential case
@@ -388,7 +388,7 @@
         else
         {
             iterator it = insertion.ITERATOR;
- Combinator<DataT>()((*it).CONT_VALUE, val.CONT_VALUE);
+ Combiner<DataT>()((*it).CONT_VALUE, val.CONT_VALUE);
 
             if(Traits::absorbs_neutrons && (*it).CONT_VALUE == DataT())
             {
@@ -400,7 +400,7 @@
         }
     }
 
- template <typename KeyT, typename DataT, class Traits, template<class>class Compare, template<class>class Combine, template<class>class Alloc>
+ template <typename KeyT, typename DataT, class Traits, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc>
     typename map<KeyT,DataT,Traits,Compare,Combine,Alloc>::size_type
         map<KeyT,DataT,Traits,Compare,Combine,Alloc>
         ::erase(const value_type& value_pair)
@@ -420,7 +420,7 @@
     }
 
 
- template <typename KeyT, typename DataT, class Traits, template<class>class Compare, template<class>class Combine, template<class>class Alloc>
+ template <typename KeyT, typename DataT, class Traits, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc>
     typename map<KeyT,DataT,Traits,Compare,Combine,Alloc>::iterator
         map<KeyT,DataT,Traits,Compare,Combine,Alloc>::subtract(const value_type& val)
     {
@@ -446,7 +446,7 @@
     }
 
 
- template <typename KeyT, typename DataT, class Traits, template<class>class Compare, template<class>class Combine, template<class>class Alloc>
+ template <typename KeyT, typename DataT, class Traits, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc>
     std::string map<KeyT,DataT,Traits,Compare,Combine,Alloc>::as_string()const
     {
         std::string repr;
@@ -462,7 +462,7 @@
         return repr;
     }
 
- template <typename KeyT, typename DataT, class Traits, template<class>class Compare, template<class>class Combine, template<class>class Alloc>
+ template <typename KeyT, typename DataT, class Traits, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc>
         template<class Predicate>
     map<KeyT,DataT,Traits,Compare,Combine,Alloc>& map<KeyT,DataT,Traits,Compare,Combine,Alloc>
         ::erase_if(const Predicate& pred)
@@ -476,7 +476,7 @@
     }
 
 
- template <typename KeyT, typename DataT, class Traits, template<class>class Compare, template<class>class Combine, template<class>class Alloc>
+ template <typename KeyT, typename DataT, class Traits, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc>
         template<class Predicate>
     map<KeyT,DataT,Traits,Compare,Combine,Alloc>& map<KeyT,DataT,Traits,Compare,Combine,Alloc>
         ::assign_if(const map<KeyT,DataT,Traits,Compare,Combine,Alloc>& src, const Predicate& pred)
@@ -491,7 +491,7 @@
     }
     //-------------------------------------------------------------------------
     template <typename KeyT, typename DataT, class Traits,
- template<class>class Compare, template<class>class Combine, template<class>class Alloc>
+ ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc>
     map<KeyT,DataT,Traits,Compare,Combine,Alloc>&
         insert(map<KeyT,DataT,Traits,Compare,Combine,Alloc>& object,
                const map<KeyT,DataT,Traits,Compare,Combine,Alloc>& insertee)
@@ -505,7 +505,7 @@
     }
 
     template <typename KeyT, typename DataT, class Traits,
- template<class>class Compare, template<class>class Combine, template<class>class Alloc>
+ ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc>
     map<KeyT,DataT,Traits,Compare,Combine,Alloc>&
         erase(map<KeyT,DataT,Traits,Compare,Combine,Alloc>& object,
               const map<KeyT,DataT,Traits,Compare,Combine,Alloc>& erasee)

Modified: sandbox/itl/boost/itl/notate.hpp
==============================================================================
--- sandbox/itl/boost/itl/notate.hpp (original)
+++ sandbox/itl/boost/itl/notate.hpp 2008-11-29 08:44:20 EST (Sat, 29 Nov 2008)
@@ -68,6 +68,18 @@
     const int UNDEFINED_INDEX = -1;
 }} // namespace itl boost
 
+//------------------------------------------------------------------------------
+// Auxiliary macros for denoting template signatures.
+// Purpose:
+// (1) Shorten the lenthy and redundant template signatures.
+// (2) Name anonymous template types according to theirs meaning ...
+// (3) Making easier to refactor by redefinitin of the macros
+// (4) Being able to check template template parameter variants against
+// template type parameter variants.
+
+#define ITL_COMPARE template<class>class
+#define ITL_COMBINE template<class>class
+#define ITL_ALLOC template<class>class
 
 #endif // __itl_NOTATE_H_JOFA_990119__
 

Modified: sandbox/itl/boost/itl/separate_interval_set.hpp
==============================================================================
--- sandbox/itl/boost/itl/separate_interval_set.hpp (original)
+++ sandbox/itl/boost/itl/separate_interval_set.hpp 2008-11-29 08:44:20 EST (Sat, 29 Nov 2008)
@@ -67,9 +67,9 @@
 template
 <
     typename DomainT,
- template<class, template<class>class>class Interval = itl::interval,
- template<class>class Compare = std::less,
- template<class>class Alloc = std::allocator
+ template<class,ITL_COMPARE>class Interval = itl::interval,
+ ITL_COMPARE Compare = std::less,
+ ITL_ALLOC Alloc = std::allocator
>
 class separate_interval_set:
     public interval_base_set<separate_interval_set<DomainT,Interval,Compare,Alloc>,
@@ -181,7 +181,7 @@
 } ;
 
 
-template <typename DomainT, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Alloc>
+template <typename DomainT, template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_ALLOC Alloc>
 bool separate_interval_set<DomainT,Interval,Compare,Alloc>::contains_(const interval_type& interv)const
 {
     if(interv.empty())
@@ -193,7 +193,7 @@
 }
 
 
-template<class DomainT, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Alloc>
+template<class DomainT, template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_ALLOC Alloc>
 void separate_interval_set<DomainT,Interval,Compare,Alloc>::add_(const value_type& x)
 {
     if(x.empty()) return;
@@ -226,7 +226,7 @@
 }
 
 
-template<class DomainT, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Alloc>
+template<class DomainT, template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_ALLOC Alloc>
 void separate_interval_set<DomainT,Interval,Compare,Alloc>::subtract_(const value_type& x)
 {
     if(x.empty()) return;

Modified: sandbox/itl/boost/itl/set.hpp
==============================================================================
--- sandbox/itl/boost/itl/set.hpp (original)
+++ sandbox/itl/boost/itl/set.hpp 2008-11-29 08:44:20 EST (Sat, 29 Nov 2008)
@@ -69,8 +69,8 @@
     template
     <
         typename KeyT,
- template<class>class Compare = std::less,
- template<class>class Alloc = std::allocator
+ ITL_COMPARE Compare = std::less,
+ ITL_ALLOC Alloc = std::allocator
>
     class set: private std::set<KeyT, Compare<KeyT>, Alloc<KeyT> >
     {
@@ -213,7 +213,7 @@
 
     /** Standard equality, which is lexicographical equality of the sets
         as sequences, that are given by their Compare order. */
- template <typename KeyT, template<class>class Compare, template<class>class Alloc>
+ template <typename KeyT, ITL_COMPARE Compare, ITL_ALLOC Alloc>
     inline bool operator == (const itl::set<KeyT,Compare,Alloc>& lhs,
                              const itl::set<KeyT,Compare,Alloc>& rhs)
     {
@@ -223,8 +223,8 @@
 
     /** Element equality. Two sets are equal if they contain the same
         elements */
- template <typename KeyT, template<class>class Compare,
- template<class>class Alloc>
+ template <typename KeyT, ITL_COMPARE Compare,
+ ITL_ALLOC Alloc>
     inline bool is_element_equal(const itl::set<KeyT,Compare,Alloc>& lhs,
                                  const itl::set<KeyT,Compare,Alloc>& rhs)
     {
@@ -233,8 +233,8 @@
     }
 
     /** Strict weak less ordering which is given by the Compare order */
- template <typename KeyT, template<class>class Compare,
- template<class>class Alloc>
+ template <typename KeyT, ITL_COMPARE Compare,
+ ITL_ALLOC Alloc>
     inline bool operator < (const itl::set<KeyT,Compare,Alloc>& lhs,
                             const itl::set<KeyT,Compare,Alloc>& rhs)
     {
@@ -243,8 +243,8 @@
     }
 
     /** Partial ordering which is induced by Compare */
- template <typename KeyT, template<class>class Compare,
- template<class>class Alloc>
+ template <typename KeyT, ITL_COMPARE Compare,
+ ITL_ALLOC Alloc>
     inline bool operator <= (const itl::set<KeyT,Compare,Alloc>& lhs,
         const itl::set<KeyT,Compare,Alloc>& rhs)
     {
@@ -253,8 +253,8 @@
     }
 
 
- template <typename KeyT, template<class>class Compare,
- template<class>class Alloc>
+ template <typename KeyT, ITL_COMPARE Compare,
+ ITL_ALLOC Alloc>
     typename set<KeyT,Compare,Alloc>::iterator
         set<KeyT,Compare,Alloc>::subtract(const value_type& val)
     {
@@ -266,7 +266,7 @@
     }
 
 
- template <typename KeyT, template<class>class Compare, template<class>class Alloc>
+ template <typename KeyT, ITL_COMPARE Compare, ITL_ALLOC Alloc>
     std::string set<KeyT,Compare,Alloc>::as_string(const char* sep)const
     {
         const_iterator it_ = begin();
@@ -281,7 +281,7 @@
     }
 
 
- template <typename KeyT, template<class>class Compare, template<class>class Alloc>
+ template <typename KeyT, ITL_COMPARE Compare, ITL_ALLOC Alloc>
         template <class Predicate>
     set<KeyT,Compare,Alloc>& set<KeyT,Compare,Alloc>
         ::erase_if(const Predicate& pred)
@@ -295,7 +295,7 @@
 
     }
 
- template <typename KeyT, template<class>class Compare, template<class>class Alloc>
+ template <typename KeyT, ITL_COMPARE Compare, ITL_ALLOC Alloc>
         template <class Predicate>
     set<KeyT,Compare,Alloc>& set<KeyT,Compare,Alloc>
         ::assign_if(const set<KeyT,Compare,Alloc>& src, const Predicate& pred)
@@ -311,7 +311,7 @@
 
     //-------------------------------------------------------------------------
     template <typename KeyT,
- template<class>class Compare, template<class>class Alloc>
+ ITL_COMPARE Compare, ITL_ALLOC Alloc>
     set<KeyT,Compare,Alloc>&
         insert( set<KeyT,Compare,Alloc>& object,
                const set<KeyT,Compare,Alloc>& insertee)
@@ -320,7 +320,7 @@
     }
 
     template <typename KeyT,
- template<class>class Compare, template<class>class Alloc>
+ ITL_COMPARE Compare, ITL_ALLOC Alloc>
     set<KeyT,Compare,Alloc>&
         erase( set<KeyT,Compare,Alloc>& object,
               const set<KeyT,Compare,Alloc>& erasee)

Modified: sandbox/itl/boost/itl/split_interval_map.hpp
==============================================================================
--- sandbox/itl/boost/itl/split_interval_map.hpp (original)
+++ sandbox/itl/boost/itl/split_interval_map.hpp 2008-11-29 08:44:20 EST (Sat, 29 Nov 2008)
@@ -129,10 +129,10 @@
         typename DomainT,
         typename CodomainT,
         class Traits = itl::neutron_absorber,
- template<class, template<class>class>class Interval = itl::interval,
- template<class>class Compare = std::less,
- template<class>class Combine = itl::inplace_plus,
- template<class>class Alloc = std::allocator
+ template<class,ITL_COMPARE>class Interval = itl::interval,
+ ITL_COMPARE Compare = std::less,
+ ITL_COMBINE Combine = itl::inplace_plus,
+ ITL_ALLOC Alloc = std::allocator
>
     class split_interval_map:
         public interval_base_map<split_interval_map<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>,
@@ -241,7 +241,7 @@
     } ;
 
 
- template <typename DomainT, typename CodomainT, class Traits, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Combine, template<class>class Alloc>
+ template <typename DomainT, typename CodomainT, class Traits, template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc>
     bool split_interval_map<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
         ::contains_(const value_type& interv_value)const
     {
@@ -258,7 +258,7 @@
 
 
 template <typename DomainT, typename CodomainT, class Traits,
- template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Combine, template<class>class Alloc>
+ template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc>
 void split_interval_map<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
     ::fill(const value_type& value)
 {
@@ -271,7 +271,7 @@
 }
 
 template <typename DomainT, typename CodomainT, class Traits,
- template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Combine, template<class>class Alloc>
+ template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc>
     template<class Combiner>
 void split_interval_map<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
     ::fill_gap(const value_type& value, const Combiner& combine)
@@ -295,7 +295,7 @@
 //-----------------------------------------------------------------------------
 // add<Combinator>(pair(interval,value)):
 //-----------------------------------------------------------------------------
-template <typename DomainT, typename CodomainT, class Traits, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Combine, template<class>class Alloc>
+template <typename DomainT, typename CodomainT, class Traits, template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc>
     template<class Combiner>
 void split_interval_map<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
     ::add_(const value_type& x, const Combiner& combine)
@@ -379,7 +379,7 @@
     }
 }
 
-template <typename DomainT, typename CodomainT, class Traits, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Combine, template<class>class Alloc>
+template <typename DomainT, typename CodomainT, class Traits, template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc>
     template<class Combiner>
 void split_interval_map<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
     ::add_rest(const interval_type& x_itv, const CodomainT& x_val,
@@ -409,7 +409,7 @@
     add_rear(x_rest, x_val, it, combine);
 }
 
-template <typename DomainT, typename CodomainT, class Traits, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Combine, template<class>class Alloc>
+template <typename DomainT, typename CodomainT, class Traits, template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc>
     template<class Combiner>
 void split_interval_map<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
     ::add_rear(const interval_type& x_rest, const CodomainT& x_val, iterator& it,
@@ -445,7 +445,7 @@
 //-----------------------------------------------------------------------------
 // subtract<Combinator>(pair(interval,value)):
 //-----------------------------------------------------------------------------
-template <typename DomainT, typename CodomainT, class Traits, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Combine, template<class>class Alloc>
+template <typename DomainT, typename CodomainT, class Traits, template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc>
     template<class Combiner>
 void split_interval_map<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
     ::subtract_(const value_type& x, const Combiner& combine)
@@ -504,7 +504,7 @@
 
 
 
-template <typename DomainT, typename CodomainT, class Traits, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Combine, template<class>class Alloc>
+template <typename DomainT, typename CodomainT, class Traits, template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc>
     template<class Combiner>
 void split_interval_map<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
     ::subtract_rest(const interval_type& x_itv, const CodomainT& x_val,
@@ -557,8 +557,8 @@
 //-----------------------------------------------------------------------------
 // insert(pair(interval,value)):
 //-----------------------------------------------------------------------------
-template <typename DomainT, typename CodomainT, class Traits, template<class, template<class>class>class Interval,
- template<class>class Compare, template<class>class Combine, template<class>class Alloc>
+template <typename DomainT, typename CodomainT, class Traits, template<class,ITL_COMPARE>class Interval,
+ ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc>
 void split_interval_map<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
     ::insert_(const value_type& x)
 {
@@ -614,8 +614,8 @@
 }
 
 
-template <typename DomainT, typename CodomainT, class Traits, template<class, template<class>class>class Interval,
- template<class>class Compare, template<class>class Combine, template<class>class Alloc>
+template <typename DomainT, typename CodomainT, class Traits, template<class,ITL_COMPARE>class Interval,
+ ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc>
 void split_interval_map<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
     ::insert_rest(const interval_type& x_itv, const CodomainT& x_val,
                   iterator& it, iterator& end_it)
@@ -635,8 +635,8 @@
     insert_rear(x_rest, x_val, it);
 }
 
-template <typename DomainT, typename CodomainT, class Traits, template<class, template<class>class>class Interval,
- template<class>class Compare, template<class>class Combine, template<class>class Alloc>
+template <typename DomainT, typename CodomainT, class Traits, template<class,ITL_COMPARE>class Interval,
+ ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc>
 void split_interval_map<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
     ::insert_rear(const interval_type& x_rest, const CodomainT& x_val,
                   iterator& it)
@@ -659,7 +659,7 @@
 //-----------------------------------------------------------------------------
 // erase(pair(interval,value)):
 //-----------------------------------------------------------------------------
-template <typename DomainT, typename CodomainT, class Traits, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Combine, template<class>class Alloc>
+template <typename DomainT, typename CodomainT, class Traits, template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc>
 void split_interval_map<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
     ::erase_(const value_type& x)
 {
@@ -718,7 +718,7 @@
 }
 
 
-template <typename DomainT, typename CodomainT, class Traits, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Combine, template<class>class Alloc>
+template <typename DomainT, typename CodomainT, class Traits, template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_COMBINE Combine, ITL_ALLOC Alloc>
 void split_interval_map<DomainT,CodomainT,Traits,Interval,Compare,Combine,Alloc>
     ::erase_rest(const interval_type& x_itv, const CodomainT& x_val,
                  iterator& it, iterator& end_it)

Modified: sandbox/itl/boost/itl/split_interval_set.hpp
==============================================================================
--- sandbox/itl/boost/itl/split_interval_set.hpp (original)
+++ sandbox/itl/boost/itl/split_interval_set.hpp 2008-11-29 08:44:20 EST (Sat, 29 Nov 2008)
@@ -88,9 +88,9 @@
     template
     <
         typename DomainT,
- template<class, template<class>class>class Interval = itl::interval,
- template<class>class Compare = std::less,
- template<class>class Alloc = std::allocator
+ template<class,ITL_COMPARE>class Interval = itl::interval,
+ ITL_COMPARE Compare = std::less,
+ ITL_ALLOC Alloc = std::allocator
>
     class split_interval_set:
         public interval_base_set<split_interval_set<DomainT,Interval,Compare,Alloc>,
@@ -200,7 +200,7 @@
         void subtract_rest(const interval_type& x_itv, iterator& it, iterator& end_it);
     } ;
 
- template <typename DomainT, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Alloc>
+ template <typename DomainT, template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_ALLOC Alloc>
     bool split_interval_set<DomainT,Interval,Compare,Alloc>::contains_(const interval_type& interv)const
     {
         if(interv.empty())
@@ -212,7 +212,7 @@
     }
 
 
- template <typename DomainT, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Alloc>
+ template <typename DomainT, template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_ALLOC Alloc>
     void split_interval_set<DomainT,Interval,Compare,Alloc>::add_(const value_type& x)
     {
         if(x.empty()) return;
@@ -274,7 +274,7 @@
     }
 
 
- template <typename DomainT, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Alloc>
+ template <typename DomainT, template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_ALLOC Alloc>
     void split_interval_set<DomainT,Interval,Compare,Alloc>::insert_rest(const interval_type& x_itv, iterator& it, iterator& end_it)
     {
         iterator nxt_it = it; nxt_it++;
@@ -315,7 +315,7 @@
     }
 
 
- template <typename DomainT, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Alloc>
+ template <typename DomainT, template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_ALLOC Alloc>
     void split_interval_set<DomainT,Interval,Compare,Alloc>::subtract_(const value_type& x)
     {
         if(x.empty()) return;
@@ -366,7 +366,7 @@
 
 
 
- template <typename DomainT, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Alloc>
+ template <typename DomainT, template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_ALLOC Alloc>
     void split_interval_set<DomainT,Interval,Compare,Alloc>::subtract_rest(const interval_type& x_itv, iterator& snd_it, iterator& end_it)
     {
         iterator it=snd_it, nxt_it=snd_it; nxt_it++;
@@ -401,7 +401,7 @@
         NOTE: This is not inline with the mathematical view.
         We have a distiction between 'element equality' and 'lexicographical
         equality'. */
- template <typename DomainT, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Alloc>
+ template <typename DomainT, template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_ALLOC Alloc>
     inline bool operator == (const split_interval_set<DomainT,Interval,Compare,Alloc>& lhs,
                              const split_interval_set<DomainT,Interval,Compare,Alloc>& rhs)
     {
@@ -414,7 +414,7 @@
     }
 
 
- template <typename DomainT, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Alloc>
+ template <typename DomainT, template<class,ITL_COMPARE>class Interval, ITL_COMPARE Compare, ITL_ALLOC Alloc>
     inline bool operator < (const split_interval_set<DomainT,Interval,Compare,Alloc>& lhs,
                             const split_interval_set<DomainT,Interval,Compare,Alloc>& rhs)
     {

Modified: sandbox/itl/boost/itl_xt/list.hpp
==============================================================================
--- sandbox/itl/boost/itl_xt/list.hpp (original)
+++ sandbox/itl/boost/itl_xt/list.hpp 2008-11-29 08:44:20 EST (Sat, 29 Nov 2008)
@@ -52,7 +52,7 @@
 
         @author Joachim Faulhaber
     */
- template <typename DataT, template<class>class Alloc = std::allocator>
+ template <typename DataT, ITL_ALLOC Alloc = std::allocator>
     class list: private std::list<DataT, Alloc<DataT> >
     {
     public:
@@ -210,7 +210,7 @@
     };
 
 
- template <typename DataT, template<class>class Alloc>
+ template <typename DataT, ITL_ALLOC Alloc>
     inline bool operator == (const itl::list<DataT,Alloc>& lhs,
                              const itl::list<DataT,Alloc>& rhs)
     {
@@ -218,7 +218,7 @@
         return operator==((const base_type&)lhs, (const base_type&)rhs);
     }
     
- template <typename DataT, template<class>class Alloc>
+ template <typename DataT, ITL_ALLOC Alloc>
     inline bool operator < (const itl::list<DataT,Alloc>& lhs,
         const itl::list<DataT,Alloc>& rhs)
     {
@@ -226,7 +226,7 @@
         return operator<((const base_type&)lhs, (const base_type&)rhs);
     }
 
- template <typename DataT, template<class>class Alloc>
+ template <typename DataT, ITL_ALLOC Alloc>
     inline bool operator <= (const itl::list<DataT,Alloc>& lhs,
         const itl::list<DataT,Alloc>& rhs)
     {
@@ -234,7 +234,7 @@
         return operator<=((const base_type&)lhs, (const base_type&)rhs);
     }
 
- template <typename DataT, template<class>class Alloc>
+ template <typename DataT, ITL_ALLOC Alloc>
     bool list<DataT,Alloc>::is_unique()const
     {
         //JODO implement via std-algorithm of directly
@@ -243,7 +243,7 @@
         return (*this) == self;
     }
 
- template <typename DataT, template<class>class Alloc>
+ template <typename DataT, ITL_ALLOC Alloc>
     bool list<DataT,Alloc>::is_supersequence(const list& subSeq)const
     {
         list sub = subSeq;
@@ -251,7 +251,7 @@
         return is_supersequence(sub, pos);
     }
 
- template <typename DataT, template<class>class Alloc>
+ template <typename DataT, ITL_ALLOC Alloc>
     bool list<DataT,Alloc>::is_supersequence(list& subtee, const_iterator& pos)const
     {
         if(subtee.empty())
@@ -271,7 +271,7 @@
     }
 
 
- template <typename DataT, template<class>class Alloc>
+ template <typename DataT, ITL_ALLOC Alloc>
     bool list<DataT,Alloc>::is_consequent(const list& conSeq)const
     {
         list seq = conSeq;
@@ -280,7 +280,7 @@
     }
 
 
- template <typename DataT, template<class>class Alloc>
+ template <typename DataT, ITL_ALLOC Alloc>
     bool list<DataT,Alloc>::is_consequent(list& seq, const_iterator& pos)const
     {
         if(seq.empty())
@@ -300,7 +300,7 @@
         }
     }
 
- template <typename DataT, template<class>class Alloc>
+ template <typename DataT, ITL_ALLOC Alloc>
     void list<DataT,Alloc>::consequent_permutation(list& perm, list& seq)
     {
         perm.clear();
@@ -309,7 +309,7 @@
         consequent_permutation(perm, this_, seq, seq_);
     }
 
- template <typename DataT, template<class>class Alloc>
+ template <typename DataT, ITL_ALLOC Alloc>
     void list<DataT,Alloc>::consequent_permutation(list& perm, iterator& this_, list& seq, iterator& seq_)
     {
         if(seq_ == seq.end())
@@ -351,7 +351,7 @@
     }
 
 
- template <typename DataT, template<class>class Alloc>
+ template <typename DataT, ITL_ALLOC Alloc>
     typename list<DataT,Alloc>::iterator list<DataT,Alloc>::first_common_element
         (iterator& beg1_, iterator& end1_, iterator& beg2_, iterator& end2_)const
     {
@@ -365,7 +365,7 @@
     }
 
 
- template <typename DataT, template<class>class Alloc>
+ template <typename DataT, ITL_ALLOC Alloc>
     void list<DataT,Alloc>::interlace(const list& inList)
     {
         BOOST_ASSERT(is_unique());
@@ -375,7 +375,7 @@
         interlace(seq, inPos);
     }
 
- template <typename DataT, template<class>class Alloc>
+ template <typename DataT, ITL_ALLOC Alloc>
     void list<DataT,Alloc>::interlace(list& seq, iterator& inPos)
     {
         if(seq.empty())
@@ -405,7 +405,7 @@
 
 
     // THINK: here codereplication occurs at the next level of abstraction (cf. SetT)
- template <typename DataT, template<class>class Alloc>
+ template <typename DataT, ITL_ALLOC Alloc>
     bool list<DataT,Alloc>::any(const property<DataT>& pred)const
     {
         const_iterator it = begin();
@@ -414,7 +414,7 @@
     }
 
 
- template <typename DataT, template<class>class Alloc>
+ template <typename DataT, ITL_ALLOC Alloc>
     std::string list<DataT,Alloc>::as_string(const char* sep /* =" " */)const
     {
         const_iterator it=begin();

Modified: sandbox/itl/boost/itl_xt/string_set.hpp
==============================================================================
--- sandbox/itl/boost/itl_xt/string_set.hpp (original)
+++ sandbox/itl/boost/itl_xt/string_set.hpp 2008-11-29 08:44:20 EST (Sat, 29 Nov 2008)
@@ -57,7 +57,7 @@
     // sets of strings
     // ---------------------------------------------------------------------------------
 
- template <template<class>class Compare = std::less>
+ template <ITL_COMPARE Compare = std::less>
     class string_set: public itl::set<std::string, Compare>
     {
     public:
@@ -80,7 +80,7 @@
     typedef string_set<String_ICLess> ICstring_setD;
     
 
- template <template<class>class Compare>
+ template <ITL_COMPARE Compare>
     std::string string_set<Compare>::as_string(char* sep)const
     {
         const_iterator it = this->begin();
@@ -94,7 +94,7 @@
     }
 
 
- template <template<class>class Compare>
+ template <ITL_COMPARE Compare>
     void string_set<Compare>::selectSet(string_set& selectees, StringSelectorFPD selector)const
     {
         selectees.clear();


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