$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r49622 - in sandbox/itl: boost/itl libs/itl/example/boost_party
From: afojgo_at_[hidden]
Date: 2008-11-07 08:33:40
Author: jofaber
Date: 2008-11-07 08:33:40 EST (Fri, 07 Nov 2008)
New Revision: 49622
URL: http://svn.boost.org/trac/boost/changeset/49622
Log:
Refactored Combiner passing. Combiners are now type and not template parameters, as suggested by Steven Watanabe. So
nongeneric Combiner implementations can be used as well. Stable {msvc-9.0}
Text files modified: 
   sandbox/itl/boost/itl/interval_base_map.hpp              |    16 ++++----                                
   sandbox/itl/boost/itl/interval_map.hpp                   |    70 ++++++++++++++++++++--------------------
   sandbox/itl/boost/itl/split_interval_map.hpp             |    60 +++++++++++++++++-----------------      
   sandbox/itl/libs/itl/example/boost_party/boost_party.cpp |     4 +-                                      
   4 files changed, 75 insertions(+), 75 deletions(-)
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-07 08:33:40 EST (Fri, 07 Nov 2008)
@@ -328,8 +328,8 @@
         If Combinator implements addition (+=) associated values will contain sums.
         If Combinator implements max, associated values will contain maximal values and so on.
     */
-    template<template<class>class Combinator>
-    SubType& add(const base_pair_type& x, const Combinator<CodomainT>& combine) 
+    template<class Combiner>
+    SubType& add(const base_pair_type& x, const Combiner& combine) 
     { 
         that()->template add_(value_type(interval_type(x.KEY_VALUE), x.CONT_VALUE), combine); 
         return *that();
@@ -351,8 +351,8 @@
         If Combinator implements addition (+=) associated values will contain sums.
         If Combinator implements max, associated values will contain maximal values and so on.
     */
-    template<template<class>class Combinator>
-    SubType& add(const value_type& x, const Combinator<CodomainT>& combine) 
+    template<class Combiner>
+    SubType& add(const value_type& x, const Combiner& combine) 
     { that()->add_(x, combine); return *that(); };
 
     /// Addition of a base value pair.
@@ -404,8 +404,8 @@
         A Combinator for subtract is usually an inverse function of
         the corresponding add<Combinator>. 
     */
-    template<template<class>class Combinator>
-    SubType& subtract(const base_pair_type& x, const Combinator<CodomainT>& combine)
+    template<class Combiner>
+    SubType& subtract(const base_pair_type& x, const Combiner& combine)
     { 
                 that()->subtract_(value_type(interval_type(x.KEY_VALUE), x.CONT_VALUE), combine); 
                 return *that();
@@ -421,8 +421,8 @@
         are decremented by <tt>y</tt>. This is done via the Combinator function
         that is passed a template parameter.
     */
-    template<template<class>class Combinator>
-    void subtract(const value_type& x, const Combinator<CodomainT>& combine)
+    template<class Combiner>
+    void subtract(const value_type& x, const Combiner& combine)
         { that()->template subtract_(x, combine); }
 
 
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-07 08:33:40 EST (Fri, 07 Nov 2008)
@@ -176,14 +176,14 @@
     bool contains_(const value_type& x)const;
 
 
-    template<template<class>class Combinator>
-    void add_(const value_type&, const Combinator<CodomainT>&);
+    template<class Combiner>
+    void add_(const value_type&, const Combiner&);
 
     void add_(const value_type& value)
     { add_(value, inplace_plus<CodomainT>()); }
 
-    template<template<class>class Combinator>
-    void subtract_(const value_type&, const Combinator<CodomainT>&);
+    template<class Combiner>
+    void subtract_(const value_type&, const Combiner&);
 
     void subtract_(const value_type& value)
     {
@@ -212,27 +212,27 @@
     bool joinable(const iterator& some, const iterator& next)const;
     iterator joint_insert(iterator& some, const iterator& next);
 
-    template<template<class>class Combinator>
-    iterator fill_gap_join_left(const value_type&, const Combinator<CodomainT>&);
+    template<class Combiner>
+    iterator fill_gap_join_left(const value_type&, const Combiner&);
 
-    template<template<class>class Combinator>
-    iterator fill_gap_join_both(const value_type&, const Combinator<CodomainT>&);
+    template<class Combiner>
+    iterator fill_gap_join_both(const value_type&, const Combiner&);
 
     iterator fill_join_left(const value_type&);
     iterator fill_join_both(const value_type&);
 
-    template<template<class>class Combinator>
+    template<class Combiner>
     void add_rest(const interval_type& x_itv, const CodomainT& x_val, 
-		          iterator& it, iterator& end_it, const Combinator<CodomainT>&);
+		          iterator& it, iterator& end_it, const Combiner&);
 
-    template<template<class>class Combinator>
+    template<class Combiner>
     void add_rear(const interval_type& x_itv, const CodomainT& x_val, 
-		          iterator& it, const Combinator<CodomainT>&);
+		          iterator& it, const Combiner&);
 
-    template<template<class>class Combinator>
+    template<class Combiner>
     void subtract_rest(const interval_type& x_itv, const CodomainT& x_val, 
                                iterator& it, iterator& end_it, 
-					   const Combinator<CodomainT>&);
+					   const Combiner&);
 
     void insert_rest(const interval_type& x_itv, const CodomainT& x_val, iterator& it, iterator& end_it);
     void insert_rear(const interval_type& x_itv, const CodomainT& x_val, iterator& it);
@@ -408,12 +408,12 @@
 //-----------------------------------------------------------------------------
 template <typename DomainT, typename CodomainT, class Traits,
           template<class>class Interval, template<class>class Compare, template<class>class Alloc>
-    template<template<class>class Combinator>
+    template<class Combiner>
 typename interval_map<DomainT,CodomainT,Traits,Interval,Compare,Alloc>::iterator
 interval_map<DomainT,CodomainT,Traits,Interval,Compare,Alloc>
-    ::fill_gap_join_left(const value_type& value, const Combinator<CodomainT>& combine)
+    ::fill_gap_join_left(const value_type& value, const Combiner& combine)
 {
-    //CL static Combinator<CodomainT> combine;
+    //CL static Combiner combine;
     //collision free insert is asserted
     if(value.KEY_VALUE.empty())
         return this->_map.end();
@@ -437,12 +437,12 @@
 
 template <typename DomainT, typename CodomainT, class Traits,
           template<class>class Interval, template<class>class Compare, template<class>class Alloc>
-    template<template<class>class Combinator>
+    template<class Combiner>
 typename interval_map<DomainT,CodomainT,Traits,Interval,Compare,Alloc>::iterator
 interval_map<DomainT,CodomainT,Traits,Interval,Compare,Alloc>
-    ::fill_gap_join_both(const value_type& value, const Combinator<CodomainT>& combine)
+    ::fill_gap_join_both(const value_type& value, const Combiner& combine)
 {
-    //CL static Combinator<CodomainT> combine;
+    //CL static Combiner combine;
     //collision free insert is asserted
     if(value.KEY_VALUE.empty())
         return this->_map.end();
@@ -469,11 +469,11 @@
 // add<Combinator>(pair(interval,value)):
 //-----------------------------------------------------------------------------
 template <typename DomainT, typename CodomainT, class Traits, template<class>class Interval, template<class>class Compare, template<class>class Alloc>
-    template<template<class>class Combinator>
+    template<class Combiner>
 void interval_map<DomainT,CodomainT,Traits,Interval,Compare,Alloc>
-    ::add_(const value_type& x, const Combinator<CodomainT>& combine)
+    ::add_(const value_type& x, const Combiner& combine)
 {
-    //CL static Combinator<CodomainT> combine;
+    //CL static Combiner combine;
 
     const interval_type& x_itv = x.KEY_VALUE;
     if(x_itv.empty()) 
@@ -570,11 +570,11 @@
 }
 
 template <typename DomainT, typename CodomainT, class Traits, template<class>class Interval, template<class>class Compare, template<class>class Alloc>
-    template<template<class>class Combinator>
+    template<class Combiner>
 void interval_map<DomainT,CodomainT,Traits,Interval,Compare,Alloc>
-    ::add_rest(const interval_type& x_itv, const CodomainT& x_val, iterator& it, iterator& end_it, const Combinator<CodomainT>& combine)
+    ::add_rest(const interval_type& x_itv, const CodomainT& x_val, iterator& it, iterator& end_it, const Combiner& combine)
 {
-    //CL static Combinator<CodomainT> combine;
+    //CL static Combiner combine;
 
     iterator nxt_it = it; nxt_it++;
     interval_type x_rest = x_itv, left_gap, common, cur_itv;
@@ -605,11 +605,11 @@
 }
 
 template <typename DomainT, typename CodomainT, class Traits, template<class>class Interval, template<class>class Compare, template<class>class Alloc>
-    template<template<class>class Combinator>
+    template<class Combiner>
 void interval_map<DomainT,CodomainT,Traits,Interval,Compare,Alloc>
-    ::add_rear(const interval_type& x_rest, const CodomainT& x_val, iterator& it, const Combinator<CodomainT>& combine)
+    ::add_rear(const interval_type& x_rest, const CodomainT& x_val, iterator& it, const Combiner& combine)
 {
-    //CL static Combinator<CodomainT> combine;
+    //CL static Combiner combine;
 
     interval_type cur_itv = (*it).KEY_VALUE ;
     CodomainT     cur_val = (*it).CONT_VALUE ;
@@ -649,11 +649,11 @@
 // subtract<Combinator>(pair(interval,value)):
 //-----------------------------------------------------------------------------
 template <typename DomainT, typename CodomainT, class Traits, template<class>class Interval, template<class>class Compare, template<class>class Alloc>
-    template<template<class>class Combinator>
+    template<class Combiner>
 void interval_map<DomainT,CodomainT,Traits,Interval,Compare,Alloc>
-    ::subtract_(const value_type& x, const Combinator<CodomainT>& combine)
+    ::subtract_(const value_type& x, const Combiner& combine)
 {
-    //CL static Combinator<CodomainT> combine;
+    //CL static Combiner combine;
     const interval_type& x_itv = x.KEY_VALUE;
 
     if(x_itv.empty()) 
@@ -719,11 +719,11 @@
 
 
 template <typename DomainT, typename CodomainT, class Traits, template<class>class Interval, template<class>class Compare, template<class>class Alloc>
-    template<template<class>class Combinator>
+    template<class Combiner>
 void interval_map<DomainT,CodomainT,Traits,Interval,Compare,Alloc>
-    ::subtract_rest(const interval_type& x_itv, const CodomainT& x_val, iterator& it, iterator& end_it, const Combinator<CodomainT>& combine)
+    ::subtract_rest(const interval_type& x_itv, const CodomainT& x_val, iterator& it, iterator& end_it, const Combiner& combine)
 {
-    //CL static Combinator<CodomainT> combine;
+    //CL static Combiner combine;
     iterator nxt_it=it; nxt_it++;
 
     while(nxt_it!=end_it)
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-07 08:33:40 EST (Fri, 07 Nov 2008)
@@ -191,14 +191,14 @@
         bool contains_(const value_type& x)const;
 
 
-        template<template<class>class Combinator>
-        void add_(const value_type&, const Combinator<CodomainT>&);
+        template<class Combiner>
+        void add_(const value_type&, const Combiner&);
 
         void add_(const value_type& value)
         { add_(value, inplace_plus<CodomainT>()); }
 
-        template<template<class>class Combinator>
-        void subtract_(const value_type&, const Combinator<CodomainT>&);
+        template<class Combiner>
+        void subtract_(const value_type&, const Combiner&);
 
         void subtract_(const value_type& value)
         {
@@ -220,22 +220,22 @@
 
         void fill(const value_type&);
 
-        template<template<class>class Combinator>
-        void fill_gap(const value_type&, const Combinator<CodomainT>& combine);
+        template<class Combiner>
+        void fill_gap(const value_type&, const Combiner& combine);
 
-        template<template<class>class Combinator>
+        template<class Combiner>
         void add_rest(const interval_type& x_itv, const CodomainT& x_val, 
                       iterator& it, iterator& end_it,
-					  const Combinator<CodomainT>& combine);
+					  const Combiner& combine);
 
-        template<template<class>class Combinator>
+        template<class Combiner>
         void add_rear(const interval_type& x_itv, const CodomainT& x_val, 
-			          iterator& it, const Combinator<CodomainT>& combine);
+			          iterator& it, const Combiner& combine);
 
-        template<template<class>class Combinator>
+        template<class Combiner>
         void subtract_rest(const interval_type& x_itv, const CodomainT& x_val, 
                                        iterator& it, iterator& end_it, 
-						   const Combinator<CodomainT>& combine);
+						   const Combiner& combine);
 
         void insert_rest(const interval_type& x_itv, const CodomainT& x_val, iterator& it, iterator& end_it);
         void insert_rear(const interval_type& x_itv, const CodomainT& x_val, iterator& it);
@@ -303,11 +303,11 @@
 
 template <typename DomainT, typename CodomainT, class Traits,
           template<class>class Interval, template<class>class Compare, template<class>class Alloc>
-    template<template<class>class Combinator>
+    template<class Combiner>
 void split_interval_map<DomainT,CodomainT,Traits,Interval,Compare,Alloc>
-    ::fill_gap(const value_type& value, const Combinator<CodomainT>& combine)
+    ::fill_gap(const value_type& value, const Combiner& combine)
 {
-    //CL static Combinator<CodomainT> combine;
+    //CL static Combiner combine;
     //collision free insert is asserted
     if(value.KEY_VALUE.empty())
         return;
@@ -328,11 +328,11 @@
 // add<Combinator>(pair(interval,value)):
 //-----------------------------------------------------------------------------
 template <typename DomainT, typename CodomainT, class Traits, template<class>class Interval, template<class>class Compare, template<class>class Alloc>
-    template<template<class>class Combinator>
+    template<class Combiner>
 void split_interval_map<DomainT,CodomainT,Traits,Interval,Compare,Alloc>
-    ::add_(const value_type& x, const Combinator<CodomainT>& combine)
+    ::add_(const value_type& x, const Combiner& combine)
 {
-    //CL static Combinator<CodomainT> combine;
+    //CL static Combiner combine;
     const interval_type& x_itv = x.KEY_VALUE;
 
     if(x_itv.empty()) 
@@ -413,13 +413,13 @@
 }
 
 template <typename DomainT, typename CodomainT, class Traits, template<class>class Interval, template<class>class Compare, template<class>class Alloc>
-    template<template<class>class Combinator>
+    template<class Combiner>
 void split_interval_map<DomainT,CodomainT,Traits,Interval,Compare,Alloc>
     ::add_rest(const interval_type& x_itv, const CodomainT& x_val, 
                iterator& it, iterator& end_it,
-               const Combinator<CodomainT>& combine)
+               const Combiner& combine)
 {
-    //CL static Combinator<CodomainT> combine;
+    //CL static Combiner combine;
     iterator nxt_it = it; nxt_it++;
     interval_type x_rest = x_itv, gap, common, cur_itv;
 
@@ -444,12 +444,12 @@
 }
 
 template <typename DomainT, typename CodomainT, class Traits, template<class>class Interval, template<class>class Compare, template<class>class Alloc>
-    template<template<class>class Combinator>
+    template<class Combiner>
 void split_interval_map<DomainT,CodomainT,Traits,Interval,Compare,Alloc>
     ::add_rear(const interval_type& x_rest, const CodomainT& x_val, iterator& it,
-	           const Combinator<CodomainT>& combine)
+	           const Combiner& combine)
 {
-    //CL static Combinator<CodomainT> combine;
+    //CL static Combiner combine;
     interval_type cur_itv = (*it).KEY_VALUE ;
     CodomainT     cur_val = (*it).CONT_VALUE ;
 
@@ -481,11 +481,11 @@
 // subtract<Combinator>(pair(interval,value)):
 //-----------------------------------------------------------------------------
 template <typename DomainT, typename CodomainT, class Traits, template<class>class Interval, template<class>class Compare, template<class>class Alloc>
-    template<template<class>class Combinator>
+    template<class Combiner>
 void split_interval_map<DomainT,CodomainT,Traits,Interval,Compare,Alloc>
-    ::subtract_(const value_type& x, const Combinator<CodomainT>& combine)
+    ::subtract_(const value_type& x, const Combiner& combine)
 {
-    //CL static Combinator<CodomainT> combine;
+    //CL static Combiner combine;
     const interval_type& x_itv = x.KEY_VALUE;
 
     if(x_itv.empty()) 
@@ -541,13 +541,13 @@
 
 
 template <typename DomainT, typename CodomainT, class Traits, template<class>class Interval, template<class>class Compare, template<class>class Alloc>
-    template<template<class>class Combinator>
+    template<class Combiner>
 void split_interval_map<DomainT,CodomainT,Traits,Interval,Compare,Alloc>
     ::subtract_rest(const interval_type& x_itv, const CodomainT& x_val, 
                     iterator& it, iterator& end_it, 
-					const Combinator<CodomainT>& combine)
+					const Combiner& combine)
 {
-    //CL static Combinator<CodomainT> combine;
+    //CL static Combiner combine;
     iterator nxt_it=it; nxt_it++;
 
     while(nxt_it!=end_it)
Modified: sandbox/itl/libs/itl/example/boost_party/boost_party.cpp
==============================================================================
--- sandbox/itl/libs/itl/example/boost_party/boost_party.cpp	(original)
+++ sandbox/itl/libs/itl/example/boost_party/boost_party.cpp	2008-11-07 08:33:40 EST (Fri, 07 Nov 2008)
@@ -120,7 +120,7 @@
           inplace_max<int>()
         );
 
-    tallest_guest.add<inplace_max>(
+    tallest_guest.add(
       make_pair( 
         rightopen_interval<ptime>(
           time_from_string("2008-05-20 20:10"), 
@@ -129,7 +129,7 @@
           inplace_max<int>()
         );
 
-    tallest_guest.add<inplace_max>(
+    tallest_guest.add(
       make_pair( 
         rightopen_interval<ptime>(
           time_from_string("2008-05-20 22:15"),