|
Boost-Commit : |
Subject: [Boost-commit] svn:boost r49766 - sandbox/itl/boost/itl
From: afojgo_at_[hidden]
Date: 2008-11-15 06:06:22
Author: jofaber
Date: 2008-11-15 06:06:21 EST (Sat, 15 Nov 2008)
New Revision: 49766
URL: http://svn.boost.org/trac/boost/changeset/49766
Log:
Refactored: Introduced a template template parameter Compare to itl::interval and passed
the Compare parameter from all interval containers to their interval types.
Replaced constructor function templates for open/closed intervals by static member functions.
2. Committing conflicted files after revert. Stable {msvc-9.0}
Text files modified:
sandbox/itl/boost/itl/interval_base_map.hpp | 81 +++++++++++++++++++--------------------
sandbox/itl/boost/itl/interval_base_set.hpp | 44 ++++++++++----------
sandbox/itl/boost/itl/interval_map.hpp | 52 ++++++++++++------------
sandbox/itl/boost/itl/interval_set.hpp | 31 +++++++-------
sandbox/itl/boost/itl/split_interval_map.hpp | 40 +++++++++---------
sandbox/itl/boost/itl/split_interval_set.hpp | 26 ++++++------
6 files changed, 137 insertions(+), 137 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-15 06:06:21 EST (Sat, 15 Nov 2008)
@@ -135,8 +135,8 @@
typename DomainT,
typename CodomainT,
class Traits = itl::neutron_absorber,
- template<class>class Interval = itl::interval,
- class Compare = std::less<DomainT>,
+ template<class, template<class>class>class Interval = itl::interval,
+ template<class>class Compare = std::less,
template<class>class Alloc = std::allocator
>
#ifdef USE_CONCEPTS
@@ -174,7 +174,7 @@
/// Auxiliary type to help the compiler resolve ambiguities when using std::make_pair
typedef base_pair<domain_type,codomain_type> base_pair_type;
/// The interval type of the map
- typedef Interval<DomainT> interval_type;
+ typedef Interval<DomainT,Compare> interval_type;
/// The difference type of an interval which is sometimes different form the domain_type
typedef typename interval_type::difference_type difference_type;
@@ -183,7 +183,7 @@
typedef typename interval_type::size_type size_type;
/// Comparison functor for domain values
- typedef Compare domain_compare;
+ typedef Compare<DomainT> domain_compare;
/// Comparison functor for intervals which are keys as well
typedef exclusive_less<interval_type> interval_compare;
@@ -196,7 +196,7 @@
/// Container type for the implementation
typedef itl::map<interval_type,codomain_type,Traits,
- exclusive_less<interval_type>,Alloc> ImplMapT;
+ exclusive_less,Alloc> ImplMapT;
/// key type of the implementing container
typedef typename ImplMapT::key_type key_type;
@@ -289,11 +289,11 @@
//@{
/// Lower bound of the first interval
DomainT lower()const
- { return empty()? Interval<DomainT>().lower() : (*(_map.begin())).KEY_VALUE.lower(); }
+ { return empty()? interval_type().lower() : (*(_map.begin())).KEY_VALUE.lower(); }
/// Upper bound of the last interval
DomainT upper()const
- { return empty()? Interval<DomainT>().upper() : (*(_map.rbegin())).KEY_VALUE.upper(); }
+ { return empty()? interval_type().upper() : (*(_map.rbegin())).KEY_VALUE.upper(); }
/// Number of intervals which is also the size of the iteration over the map
size_t interval_count()const { return _map.size(); }
@@ -623,8 +623,8 @@
<
template
<
- class DomT, template<class>class Interv,
- class Comp, template<class>class Allc
+ class DomT, template<class DomT,template<class>class Comp>class Interv,
+ template<class>class Comp, template<class>class Allc
>
class IntervalSet
>
@@ -652,8 +652,8 @@
template
<
class DomT, class CodomT,
- class Trts, template<class>class Interv,
- class Comp, template<class>class Allc
+ class Trts, template<class DomT,template<class>class Comp>class Interv,
+ template<class>class Comp, template<class>class Allc
>
class IntervalMap
>
@@ -712,8 +712,8 @@
<
template
<
- class DomT, template<class>class Interv,
- class Comp, template<class>class Allc
+ class DomT, template<class DomT,template<class>class Comp>class Interv,
+ template<class>class Comp, template<class>class Allc
>
class IntervalSet
>
@@ -854,7 +854,7 @@
template
<
class SubType, class DomainT, class CodomainT, class Traits,
- template<class>class Interval, class Compare,
+ template<class, template<class>class>class Interval, template<class>class Compare,
template<class>class Alloc
>
typename interval_base_map<SubType,DomainT,CodomainT,Traits,
@@ -874,7 +874,7 @@
template
<
class SubType, class DomainT, class CodomainT, class Traits,
- template<class>class Interval, class Compare,
+ template<class, template<class>class>class Interval, template<class>class Compare,
template<class>class Alloc
>
typename interval_base_map<SubType,DomainT,CodomainT,Traits,
@@ -894,7 +894,7 @@
template
<
class SubType,
- class DomainT, class CodomainT, class Traits, template<class>class Interval, class Compare, template<class>class Alloc
+ class DomainT, class CodomainT, class Traits, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Alloc
>
bool interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Alloc>::contained_in(const interval_base_map& super)const
{
@@ -910,16 +910,16 @@
<
class SubType,
class DomainT, class CodomainT,
- class Traits, template<class>class Interval,
- class Compare, template<class>class Alloc
+ class Traits, template<class, template<class>class>class Interval,
+ template<class>class Compare, template<class>class Alloc
>
template
<
template
<
class DomT, class CodomT,
- class Trts, template<class>class Interv,
- class Comp, template<class>class Allc
+ class Trts, template<class DomT,template<class>class Comp>class Interv,
+ template<class>class Comp, template<class>class Allc
>
class IntervalMap
>
@@ -946,7 +946,7 @@
template
<
class SubType,
- class DomainT, class CodomainT, class Traits, template<class>class Interval, class Compare, template<class>class Alloc
+ class DomainT, class CodomainT, class Traits, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Alloc
>
void interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Alloc>
::add_intersection(interval_base_map& section,
@@ -981,7 +981,7 @@
template
<
class SubType,
- class DomainT, class CodomainT, class Traits, template<class>class Interval, class Compare, template<class>class Alloc
+ class DomainT, class CodomainT, class Traits, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Alloc
>
void interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Alloc>
::add_intersection(interval_base_map& section,
@@ -1008,7 +1008,7 @@
template
<
class SubType,
- class DomainT, class CodomainT, class Traits, template<class>class Interval, class Compare, template<class>class Alloc
+ class DomainT, class CodomainT, class Traits, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Alloc
>
interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Alloc>& interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Alloc>
::join()
@@ -1057,7 +1057,7 @@
template
<
class SubType,
- class DomainT, class CodomainT, class Traits, template<class>class Interval, class Compare, template<class>class Alloc
+ class DomainT, class CodomainT, class Traits, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Alloc
>
std::string interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Alloc>::as_string()const
{
@@ -1077,7 +1077,7 @@
template
<
class SubType,
- class DomainT, class CodomainT, class Traits, template<class>class Interval, class Compare, template<class>class Alloc
+ class DomainT, class CodomainT, class Traits, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Alloc
>
CodomainT interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Alloc>::sum()const
{
@@ -1091,7 +1091,7 @@
template
<
class SubType,
- class DomainT, class CodomainT, class Traits, template<class>class Interval, class Compare, template<class>class Alloc
+ class DomainT, class CodomainT, class Traits, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Alloc
>
void interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Alloc>::uniformBounds( typename interval<DomainT>::bound_types bt)
{
@@ -1103,7 +1103,7 @@
template
<
class SubType,
- class DomainT, class CodomainT, class Traits, template<class>class Interval, class Compare, template<class>class Alloc
+ class DomainT, class CodomainT, class Traits, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Alloc
>
void interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Alloc>::closeLeftBounds()
{
@@ -1117,7 +1117,7 @@
template
<
class SubType,
- class DomainT, class CodomainT, class Traits, template<class>class Interval, class Compare, template<class>class Alloc
+ class DomainT, class CodomainT, class Traits, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Alloc
>
SubType& interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Alloc>
::erase(const interval_type& x_itv)
@@ -1155,7 +1155,7 @@
template
<
class SubType,
- class DomainT, class CodomainT, class Traits, template<class>class Interval, class Compare, template<class>class Alloc
+ class DomainT, class CodomainT, class Traits, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Alloc
>
SubType&
interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Alloc>
@@ -1179,7 +1179,7 @@
template
<
class SubType,
- class DomainT, class CodomainT, class Traits, template<class>class Interval, class Compare, template<class>class Alloc
+ class DomainT, class CodomainT, class Traits, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Alloc
>
inline bool operator == (const interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Alloc>& lhs,
const interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Alloc>& rhs)
@@ -1195,7 +1195,7 @@
template
<
class SubType,
- class DomainT, class CodomainT, class Traits, template<class>class Interval, class Compare, template<class>class Alloc
+ class DomainT, class CodomainT, class Traits, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Alloc
>
inline bool is_protonic_equal(const interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Alloc>& lhs,
const interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Alloc>& rhs)
@@ -1216,22 +1216,21 @@
template
<
class SubType,
- class DomainT, class CodomainT, class Traits, template<class>class Interval, class Compare, template<class>class Alloc
+ class DomainT, class CodomainT, class Traits, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Alloc
>
inline bool operator < (const interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Alloc>& lhs,
const interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Alloc>& rhs)
{
return std::lexicographical_compare(
lhs.begin(), lhs.end(), rhs.begin(), rhs.end(),
- std::less<std::pair<Interval<DomainT>, CodomainT> >() //JODO URG
- );
- //NOTE DESIGN: case against class Compare parameter!
+ Compare<std::pair<Interval<DomainT,Compare>, CodomainT> >()
+ );
}
template
<
class SubType,
- class DomainT, class CodomainT, class Traits, template<class>class Interval, class Compare, template<class>class Alloc
+ class DomainT, class CodomainT, class Traits, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Alloc
>
inline bool operator <= (const interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Alloc>& lhs,
const interval_base_map<SubType,DomainT,CodomainT,Traits,Interval,Compare,Alloc>& rhs)
@@ -1246,8 +1245,8 @@
<
class SubType,
class DomainT, class CodomainT,
- class Traits, template<class>class Interval,
- class Compare, template<class>class Alloc
+ class Traits, template<class, template<class>class>class Interval,
+ template<class>class Compare, template<class>class Alloc
>
interval_base_map<SubType,DomainT,CodomainT,
Traits,Interval,Compare,Alloc>&
@@ -1271,8 +1270,8 @@
<
class SubType,
class DomainT, class CodomainT,
- class Traits, template<class>class Interval,
- class Compare, template<class>class Alloc
+ class Traits, template<class, template<class>class>class Interval,
+ template<class>class Compare, template<class>class Alloc
>
interval_base_map<SubType,DomainT,CodomainT,
Traits,Interval,Compare,Alloc>&
@@ -1296,7 +1295,7 @@
template<class CharType, class CharTraits,
class SubType, class DomainT, class CodomainT, class Traits,
- template<class>class Interval, class Compare,
+ template<class, template<class>class>class Interval, template<class>class Compare,
template<class>class Alloc>
std::basic_ostream<CharType, CharTraits>& operator <<
(std::basic_ostream<CharType, CharTraits>& stream,
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-15 06:06:21 EST (Sat, 15 Nov 2008)
@@ -102,8 +102,8 @@
<
typename SubType,
typename DomainT,
- template<class>class Interval = itl::interval,
- class Compare = std::less<DomainT>,
+ template<class, template<class>class>class Interval = itl::interval,
+ template<class>class Compare = std::less,
template<class>class Alloc = std::allocator
>
#ifdef USE_CONCEPTS
@@ -125,7 +125,7 @@
typedef DomainT codomain_type;
/// The interval type of the set
- typedef Interval<DomainT> interval_type;
+ typedef Interval<DomainT,Compare> interval_type;
/// The difference type of an interval which is sometimes different form the data_type
typedef typename interval_type::difference_type difference_type;
@@ -135,7 +135,7 @@
/// Comparison functor for domain values
- typedef Compare domain_compare;
+ typedef Compare<DomainT> domain_compare;
/// Comparison functor for intervals
typedef exclusive_less<interval_type> interval_compare;
@@ -155,7 +155,7 @@
typedef typename itl::set<DomainT,Compare,Alloc> atomized_type;
/// Container type for the implementation
- typedef typename itl::set<interval_type,exclusive_less<interval_type>,Alloc> ImplSetT;
+ typedef typename itl::set<interval_type,exclusive_less,Alloc> ImplSetT;
/// key type of the implementing container
typedef typename ImplSetT::key_type key_type;
@@ -222,10 +222,10 @@
//@{
/// lower bound of all intervals in the set
DomainT lower()const
- { return empty()? Interval<DomainT>().lower() : (*(_set.begin())).lower(); }
+ { return empty()? interval_type().lower() : (*(_set.begin())).lower(); }
/// upper bound of all intervals in the set
DomainT upper()const
- { return empty()? Interval<DomainT>().upper() : (*(_set.rbegin())).upper(); }
+ { return empty()? interval_type().upper() : (*(_set.rbegin())).upper(); }
iterator lower_bound(const value_type& interval)
{ return _set.lower_bound(interval); }
@@ -436,8 +436,8 @@
template
<
- class SubType, class DomainT, template<class>class Interval,
- class Compare, template<class>class Alloc
+ class SubType, class DomainT, template<class, template<class>class>class Interval,
+ template<class>class Compare, template<class>class Alloc
>
typename interval_base_set<SubType,DomainT,Interval,Compare,Alloc>::size_type
interval_base_set<SubType,DomainT,Interval,Compare,Alloc>::cardinality()const
@@ -467,8 +467,8 @@
template
<
- class SubType, class DomainT, template<class>class Interval,
- class Compare, template<class>class Alloc
+ class SubType, class DomainT, template<class, template<class>class>class Interval,
+ template<class>class Compare, template<class>class Alloc
>
typename
interval_base_set<SubType,DomainT,Interval,Compare,Alloc>::difference_type
@@ -483,8 +483,8 @@
template
<
- class SubType, class DomainT, template<class>class Interval,
- class Compare, template<class>class Alloc
+ class SubType, class DomainT, template<class, template<class>class>class Interval,
+ template<class>class Compare, template<class>class Alloc
>
bool interval_base_set<SubType,DomainT,Interval,Compare,Alloc>
::contained_in(const interval_base_set& x2)const
@@ -510,7 +510,7 @@
template<class SubType,
- class DomainT, template<class>class Interval, class Compare, template<class>class Alloc>
+ class DomainT, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class 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
@@ -530,7 +530,7 @@
template<class SubType,
- class DomainT, template<class>class Interval, class Compare, template<class>class Alloc>
+ class DomainT, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Alloc>
interval_base_set<SubType,DomainT,Interval,Compare,Alloc>& interval_base_set<SubType,DomainT,Interval,Compare,Alloc>::join()
{
iterator it=_set.begin();
@@ -573,7 +573,7 @@
template<class SubType,
- class DomainT, template<class>class Interval, class Compare, template<class>class Alloc>
+ class DomainT, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class 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
@@ -583,7 +583,7 @@
template<class SubType,
- class DomainT, template<class>class Interval, class Compare, template<class>class Alloc>
+ class DomainT, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Alloc>
inline bool operator == (const interval_base_set<SubType,DomainT,Interval,Compare,Alloc>& lhs,
const interval_base_set<SubType,DomainT,Interval,Compare,Alloc>& rhs)
{
@@ -596,16 +596,16 @@
}
template<class SubType,
- class DomainT, template<class>class Interval, class Compare, template<class>class Alloc>
+ class DomainT, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Alloc>
inline bool operator < (const interval_base_set<SubType,DomainT,Interval,Compare,Alloc>& lhs,
const interval_base_set<SubType,DomainT,Interval,Compare,Alloc>& rhs)
{
return std::lexicographical_compare(
- lhs.begin(), lhs.end(), rhs.begin(), rhs.end(), std::less<Interval<DomainT> >()); //JODO URG
+ lhs.begin(), lhs.end(), rhs.begin(), rhs.end(), Compare<Interval<DomainT,Compare> >());
}
template<class SubType,
- class DomainT, template<class>class Interval, class Compare, template<class>class Alloc>
+ class DomainT, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Alloc>
inline bool operator <= (const interval_base_set<SubType,DomainT,Interval,Compare,Alloc>& lhs,
const interval_base_set<SubType,DomainT,Interval,Compare,Alloc>& rhs)
{
@@ -614,8 +614,8 @@
template<class CharType, class CharTraits,
- class SubType, class DomainT, template<class>class Interval,
- class Compare, template<class>class Alloc>
+ class SubType, class DomainT, template<class, template<class>class>class Interval,
+ template<class>class Compare, template<class>class 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-15 06:06:21 EST (Sat, 15 Nov 2008)
@@ -107,8 +107,8 @@
typename DomainT,
typename CodomainT,
class Traits = itl::neutron_absorber,
- template<class>class Interval = itl::interval,
- class Compare = std::less<DomainT>,
+ template<class, template<class>class>class Interval = itl::interval,
+ template<class>class Compare = std::less,
template<class>class Alloc = std::allocator
>
class interval_map:
@@ -125,7 +125,7 @@
typedef interval_map<DomainT,CodomainT,itl::neutron_absorber,Interval,Compare,Alloc>
neutron_absorber_type;
- typedef Interval<DomainT> interval_type;
+ typedef Interval<DomainT,Compare> interval_type;
typedef typename base_type::iterator iterator;
typedef typename base_type::value_type value_type;
typedef typename base_type::base_value_type base_value_type;
@@ -242,7 +242,7 @@
} ;
-template <typename DomainT, typename CodomainT, class Traits, template<class>class Interval, class Compare, template<class>class Alloc>
+template <typename DomainT, typename CodomainT, class Traits, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Alloc>
bool interval_map<DomainT,CodomainT,Traits,Interval,Compare,Alloc>
::contains_(const value_type& interv_value)const
{
@@ -256,7 +256,7 @@
}
-template <typename DomainT, typename CodomainT, class Traits, template<class>class Interval, class Compare, template<class>class Alloc>
+template <typename DomainT, typename CodomainT, class Traits, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Alloc>
void interval_map<DomainT,CodomainT,Traits,Interval,Compare,Alloc>::getResiduals(const interval_type& x_itv, interval_type& leftResid, interval_type& rightResid)
{
iterator fst_it = this->_map.lower_bound(x_itv);
@@ -285,7 +285,7 @@
template <typename DomainT, typename CodomainT, class Traits,
- template<class>class Interval, class Compare, template<class>class Alloc>
+ template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Alloc>
bool interval_map<DomainT,CodomainT,Traits,Interval,Compare,Alloc>
::joinable(const iterator& some, const iterator& next)const
{
@@ -295,7 +295,7 @@
}
template <typename DomainT, typename CodomainT, class Traits,
- template<class>class Interval, class Compare, template<class>class Alloc>
+ template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Alloc>
typename interval_map<DomainT,CodomainT,Traits,Interval,Compare,Alloc>::iterator
interval_map<DomainT,CodomainT,Traits,Interval,Compare,Alloc>
::joint_insert(iterator& left_it, const iterator& right_it)
@@ -325,7 +325,7 @@
template <typename DomainT, typename CodomainT, class Traits,
- template<class>class Interval, class Compare, template<class>class Alloc>
+ template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Alloc>
bool interval_map<DomainT,CodomainT,Traits,Interval,Compare,Alloc>
::join_left(iterator& it)
{
@@ -347,7 +347,7 @@
}
template <typename DomainT, typename CodomainT, class Traits,
- template<class>class Interval, class Compare, template<class>class Alloc>
+ template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Alloc>
bool interval_map<DomainT,CodomainT,Traits,Interval,Compare,Alloc>
::join_right(iterator& it)
{
@@ -369,7 +369,7 @@
template <typename DomainT, typename CodomainT, class Traits,
- template<class>class Interval, class Compare, template<class>class Alloc>
+ template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Alloc>
typename interval_map<DomainT,CodomainT,Traits,Interval,Compare,Alloc>::iterator
interval_map<DomainT,CodomainT,Traits,Interval,Compare,Alloc>
::fill_join_left(const value_type& value)
@@ -388,7 +388,7 @@
}
template <typename DomainT, typename CodomainT, class Traits,
- template<class>class Interval, class Compare, template<class>class Alloc>
+ template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Alloc>
typename interval_map<DomainT,CodomainT,Traits,Interval,Compare,Alloc>::iterator
interval_map<DomainT,CodomainT,Traits,Interval,Compare,Alloc>
::fill_join_both(const value_type& value)
@@ -408,7 +408,7 @@
//-----------------------------------------------------------------------------
template <typename DomainT, typename CodomainT, class Traits,
- template<class>class Interval, class Compare, template<class>class Alloc>
+ template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Alloc>
template<class Combiner>
typename interval_map<DomainT,CodomainT,Traits,Interval,Compare,Alloc>::iterator
interval_map<DomainT,CodomainT,Traits,Interval,Compare,Alloc>
@@ -436,7 +436,7 @@
}
template <typename DomainT, typename CodomainT, class Traits,
- template<class>class Interval, class Compare, template<class>class Alloc>
+ template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Alloc>
template<class Combiner>
typename interval_map<DomainT,CodomainT,Traits,Interval,Compare,Alloc>::iterator
interval_map<DomainT,CodomainT,Traits,Interval,Compare,Alloc>
@@ -467,7 +467,7 @@
//-----------------------------------------------------------------------------
// add<Combinator>(pair(interval,value)):
//-----------------------------------------------------------------------------
-template <typename DomainT, typename CodomainT, class Traits, template<class>class Interval, class Compare, template<class>class Alloc>
+template <typename DomainT, typename CodomainT, class Traits, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Alloc>
template<class Combiner>
void interval_map<DomainT,CodomainT,Traits,Interval,Compare,Alloc>
::add_(const value_type& x, const Combiner& combine)
@@ -566,7 +566,7 @@
}
}
-template <typename DomainT, typename CodomainT, class Traits, template<class>class Interval, class Compare, template<class>class Alloc>
+template <typename DomainT, typename CodomainT, class Traits, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Alloc>
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 Combiner& combine)
@@ -599,7 +599,7 @@
add_rear(x_rest, x_val, it, combine);
}
-template <typename DomainT, typename CodomainT, class Traits, template<class>class Interval, class Compare, template<class>class Alloc>
+template <typename DomainT, typename CodomainT, class Traits, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Alloc>
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 Combiner& combine)
@@ -641,7 +641,7 @@
//-----------------------------------------------------------------------------
// subtract<Combinator>(pair(interval,value)):
//-----------------------------------------------------------------------------
-template <typename DomainT, typename CodomainT, class Traits, template<class>class Interval, class Compare, template<class>class Alloc>
+template <typename DomainT, typename CodomainT, class Traits, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Alloc>
template<class Combiner>
void interval_map<DomainT,CodomainT,Traits,Interval,Compare,Alloc>
::subtract_(const value_type& x, const Combiner& combine)
@@ -710,7 +710,7 @@
-template <typename DomainT, typename CodomainT, class Traits, template<class>class Interval, class Compare, template<class>class Alloc>
+template <typename DomainT, typename CodomainT, class Traits, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Alloc>
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 Combiner& combine)
@@ -781,8 +781,8 @@
//-----------------------------------------------------------------------------
// insert(pair(interval,value)):
//-----------------------------------------------------------------------------
-template <typename DomainT, typename CodomainT, class Traits, template<class>class Interval,
- class Compare, template<class>class Alloc>
+template <typename DomainT, typename CodomainT, class Traits, template<class, template<class>class>class Interval,
+ template<class>class Compare, template<class>class Alloc>
void interval_map<DomainT,CodomainT,Traits,Interval,Compare,Alloc>
::insert_(const value_type& x)
{
@@ -846,8 +846,8 @@
}
-template <typename DomainT, typename CodomainT, class Traits, template<class>class Interval,
- class Compare, template<class>class Alloc>
+template <typename DomainT, typename CodomainT, class Traits, template<class, template<class>class>class Interval,
+ template<class>class Compare, template<class>class Alloc>
void interval_map<DomainT,CodomainT,Traits,Interval,Compare,Alloc>
::insert_rest(const interval_type& x_itv, const CodomainT& x_val,
iterator& it, iterator& end_it)
@@ -874,8 +874,8 @@
insert_rear(x_rest, x_val, it);
}
-template <typename DomainT, typename CodomainT, class Traits, template<class>class Interval,
- class Compare, template<class>class Alloc>
+template <typename DomainT, typename CodomainT, class Traits, template<class, template<class>class>class Interval,
+ template<class>class Compare, template<class>class Alloc>
void interval_map<DomainT,CodomainT,Traits,Interval,Compare,Alloc>
::insert_rear(const interval_type& x_rest, const CodomainT& x_val,
iterator& it)
@@ -905,7 +905,7 @@
//-----------------------------------------------------------------------------
// erase(pair(interval,value)):
//-----------------------------------------------------------------------------
-template <typename DomainT, typename CodomainT, class Traits, template<class>class Interval, class Compare, template<class>class Alloc>
+template <typename DomainT, typename CodomainT, class Traits, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Alloc>
void interval_map<DomainT,CodomainT,Traits,Interval,Compare,Alloc>
::erase_(const value_type& x)
{
@@ -964,7 +964,7 @@
}
-template <typename DomainT, typename CodomainT, class Traits, template<class>class Interval, class Compare, template<class>class Alloc>
+template <typename DomainT, typename CodomainT, class Traits, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Alloc>
void interval_map<DomainT,CodomainT,Traits,Interval,Compare,Alloc>
::erase_rest(const interval_type& x_itv, const CodomainT& x_val,
iterator& it, iterator& end_it)
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-15 06:06:21 EST (Sat, 15 Nov 2008)
@@ -103,8 +103,9 @@
template
<
typename DomainT,
- template<class>class Interval = itl::interval,
- class Compare = std::less<DomainT>,
+ template<class, template<class>class>class
+ Interval = itl::interval,
+ template<class>class Compare = std::less,
template<class>class Alloc = std::allocator
>
class interval_set:
@@ -126,10 +127,10 @@
typedef DomainT codomain_type;
/// The interval type of the set
- typedef Interval<DomainT> interval_type;
+ typedef Interval<DomainT,Compare> interval_type;
/// Comparison functor for domain values
- typedef Compare domain_compare;
+ typedef Compare<DomainT> domain_compare;
/// Comparison functor for intervals
typedef exclusive_less<interval_type> interval_compare;
@@ -149,7 +150,7 @@
typedef typename itl::set<DomainT,Compare,Alloc> atomized_type;
/// Container type for the implementation
- typedef typename itl::set<interval_type,exclusive_less<interval_type>,Alloc> ImplSetT;
+ typedef typename itl::set<interval_type,exclusive_less,Alloc> ImplSetT;
/// key type of the implementing container
typedef typename ImplSetT::key_type key_type;
@@ -221,7 +222,7 @@
-template <typename DomainT, template<class>class Interval, class Compare, template<class>class Alloc>
+template <typename DomainT, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Alloc>
bool interval_set<DomainT,Interval,Compare,Alloc>::contains_(const interval_type& x)const
{
// Emptiness is contained in everything
@@ -243,7 +244,7 @@
}
-template <typename DomainT, template<class>class Interval, class Compare, template<class>class Alloc>
+template <typename DomainT, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Alloc>
void interval_set<DomainT,Interval,Compare,Alloc>::handle_neighbours(const iterator& it)
{
if(it == this->_set.begin())
@@ -284,7 +285,7 @@
-template <typename DomainT, template<class>class Interval, class Compare, template<class>class Alloc>
+template <typename DomainT, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class 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)
@@ -305,7 +306,7 @@
}
-template<class DomainT, template<class>class Interval, class Compare, template<class>class Alloc>
+template<class DomainT, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Alloc>
void interval_set<DomainT,Interval,Compare,Alloc>::add_(const value_type& x)
{
if(x.empty()) return;
@@ -320,8 +321,8 @@
typename ImplSetT::iterator end_it = this->_set.upper_bound(x);
typename ImplSetT::iterator it=fst_it, nxt_it=fst_it, victim;
- Interval<DomainT> leftResid; (*it).left_surplus(leftResid,x);
- Interval<DomainT> rightResid;
+ interval_type leftResid; (*it).left_surplus(leftResid,x);
+ interval_type rightResid;
while(it!=end_it)
{
@@ -330,7 +331,7 @@
victim = it; it++; this->_set.erase(victim);
}
- Interval<DomainT> extended = x;
+ interval_type extended = x;
extended.extend(leftResid).extend(rightResid);
extended.extend(rightResid);
add(extended);
@@ -338,7 +339,7 @@
}
-template<class DomainT, template<class>class Interval, class Compare, template<class>class Alloc>
+template<class DomainT, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Alloc>
void interval_set<DomainT,Interval,Compare,Alloc>::subtract_(const value_type& x)
{
if(x.empty()) return;
@@ -364,8 +365,8 @@
//-----------------------------------------------------------------------------
// equality of elements
//-----------------------------------------------------------------------------
-template <typename DomainT, template<class>class Interval,
- class Compare, template<class>class Alloc>
+template <typename DomainT, template<class, template<class>class>class Interval,
+ template<class>class Compare, template<class>class 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/split_interval_map.hpp
==============================================================================
--- sandbox/itl/boost/itl/split_interval_map.hpp (original)
+++ sandbox/itl/boost/itl/split_interval_map.hpp 2008-11-15 06:06:21 EST (Sat, 15 Nov 2008)
@@ -129,8 +129,8 @@
typename DomainT,
typename CodomainT,
class Traits = itl::neutron_absorber,
- template<class>class Interval = itl::interval,
- class Compare = std::less<DomainT>,
+ template<class, template<class>class>class Interval = itl::interval,
+ template<class>class Compare = std::less,
template<class>class Alloc = std::allocator
>
class split_interval_map:
@@ -147,7 +147,7 @@
typedef split_interval_map<DomainT,CodomainT,itl::neutron_absorber,Interval,Compare,Alloc>
neutron_absorber_type;
- typedef Interval<DomainT> interval_type;
+ typedef Interval<DomainT,Compare> interval_type;
typedef typename base_type::iterator iterator;
typedef typename base_type::value_type value_type;
typedef typename base_type::base_value_type base_value_type;
@@ -244,7 +244,7 @@
} ;
- template <typename DomainT, typename CodomainT, class Traits, template<class>class Interval, class Compare, template<class>class Alloc>
+ template <typename DomainT, typename CodomainT, class Traits, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Alloc>
bool split_interval_map<DomainT,CodomainT,Traits,Interval,Compare,Alloc>
::contains_(const value_type& interv_value)const
{
@@ -260,7 +260,7 @@
- template <typename DomainT, typename CodomainT, class Traits, template<class>class Interval, class Compare, template<class>class Alloc>
+ template <typename DomainT, typename CodomainT, class Traits, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Alloc>
void split_interval_map<DomainT,CodomainT,Traits,Interval,Compare,Alloc>::getResiduals(const interval_type& x_itv, interval_type& leftResid, interval_type& rightResid)
{
iterator fst_it = this->_map.lower_bound(x_itv);
@@ -289,7 +289,7 @@
template <typename DomainT, typename CodomainT, class Traits,
- template<class>class Interval, class Compare, template<class>class Alloc>
+ template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Alloc>
void split_interval_map<DomainT,CodomainT,Traits,Interval,Compare,Alloc>
::fill(const value_type& value)
{
@@ -302,7 +302,7 @@
}
template <typename DomainT, typename CodomainT, class Traits,
- template<class>class Interval, class Compare, template<class>class Alloc>
+ template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Alloc>
template<class Combiner>
void split_interval_map<DomainT,CodomainT,Traits,Interval,Compare,Alloc>
::fill_gap(const value_type& value, const Combiner& combine)
@@ -326,7 +326,7 @@
//-----------------------------------------------------------------------------
// add<Combinator>(pair(interval,value)):
//-----------------------------------------------------------------------------
-template <typename DomainT, typename CodomainT, class Traits, template<class>class Interval, class Compare, template<class>class Alloc>
+template <typename DomainT, typename CodomainT, class Traits, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Alloc>
template<class Combiner>
void split_interval_map<DomainT,CodomainT,Traits,Interval,Compare,Alloc>
::add_(const value_type& x, const Combiner& combine)
@@ -410,7 +410,7 @@
}
}
-template <typename DomainT, typename CodomainT, class Traits, template<class>class Interval, class Compare, template<class>class Alloc>
+template <typename DomainT, typename CodomainT, class Traits, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Alloc>
template<class Combiner>
void split_interval_map<DomainT,CodomainT,Traits,Interval,Compare,Alloc>
::add_rest(const interval_type& x_itv, const CodomainT& x_val,
@@ -440,7 +440,7 @@
add_rear(x_rest, x_val, it, combine);
}
-template <typename DomainT, typename CodomainT, class Traits, template<class>class Interval, class Compare, template<class>class Alloc>
+template <typename DomainT, typename CodomainT, class Traits, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Alloc>
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,
@@ -476,7 +476,7 @@
//-----------------------------------------------------------------------------
// subtract<Combinator>(pair(interval,value)):
//-----------------------------------------------------------------------------
-template <typename DomainT, typename CodomainT, class Traits, template<class>class Interval, class Compare, template<class>class Alloc>
+template <typename DomainT, typename CodomainT, class Traits, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Alloc>
template<class Combiner>
void split_interval_map<DomainT,CodomainT,Traits,Interval,Compare,Alloc>
::subtract_(const value_type& x, const Combiner& combine)
@@ -535,7 +535,7 @@
-template <typename DomainT, typename CodomainT, class Traits, template<class>class Interval, class Compare, template<class>class Alloc>
+template <typename DomainT, typename CodomainT, class Traits, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Alloc>
template<class Combiner>
void split_interval_map<DomainT,CodomainT,Traits,Interval,Compare,Alloc>
::subtract_rest(const interval_type& x_itv, const CodomainT& x_val,
@@ -588,8 +588,8 @@
//-----------------------------------------------------------------------------
// insert(pair(interval,value)):
//-----------------------------------------------------------------------------
-template <typename DomainT, typename CodomainT, class Traits, template<class>class Interval,
- class Compare, template<class>class Alloc>
+template <typename DomainT, typename CodomainT, class Traits, template<class, template<class>class>class Interval,
+ template<class>class Compare, template<class>class Alloc>
void split_interval_map<DomainT,CodomainT,Traits,Interval,Compare,Alloc>
::insert_(const value_type& x)
{
@@ -645,8 +645,8 @@
}
-template <typename DomainT, typename CodomainT, class Traits, template<class>class Interval,
- class Compare, template<class>class Alloc>
+template <typename DomainT, typename CodomainT, class Traits, template<class, template<class>class>class Interval,
+ template<class>class Compare, template<class>class Alloc>
void split_interval_map<DomainT,CodomainT,Traits,Interval,Compare,Alloc>
::insert_rest(const interval_type& x_itv, const CodomainT& x_val,
iterator& it, iterator& end_it)
@@ -666,8 +666,8 @@
insert_rear(x_rest, x_val, it);
}
-template <typename DomainT, typename CodomainT, class Traits, template<class>class Interval,
- class Compare, template<class>class Alloc>
+template <typename DomainT, typename CodomainT, class Traits, template<class, template<class>class>class Interval,
+ template<class>class Compare, template<class>class Alloc>
void split_interval_map<DomainT,CodomainT,Traits,Interval,Compare,Alloc>
::insert_rear(const interval_type& x_rest, const CodomainT& x_val,
iterator& it)
@@ -690,7 +690,7 @@
//-----------------------------------------------------------------------------
// erase(pair(interval,value)):
//-----------------------------------------------------------------------------
-template <typename DomainT, typename CodomainT, class Traits, template<class>class Interval, class Compare, template<class>class Alloc>
+template <typename DomainT, typename CodomainT, class Traits, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Alloc>
void split_interval_map<DomainT,CodomainT,Traits,Interval,Compare,Alloc>
::erase_(const value_type& x)
{
@@ -749,7 +749,7 @@
}
-template <typename DomainT, typename CodomainT, class Traits, template<class>class Interval, class Compare, template<class>class Alloc>
+template <typename DomainT, typename CodomainT, class Traits, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Alloc>
void split_interval_map<DomainT,CodomainT,Traits,Interval,Compare,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-15 06:06:21 EST (Sat, 15 Nov 2008)
@@ -88,8 +88,8 @@
template
<
typename DomainT,
- template<class>class Interval = itl::interval,
- class Compare = std::less<DomainT>,
+ template<class, template<class>class>class Interval = itl::interval,
+ template<class>class Compare = std::less,
template<class>class Alloc = std::allocator
>
class split_interval_set:
@@ -109,10 +109,10 @@
typedef DomainT codomain_type;
/// The interval type of the set
- typedef Interval<DomainT> interval_type;
+ typedef Interval<DomainT,Compare> interval_type;
/// Comparison functor for domain values
- typedef Compare domain_compare;
+ typedef Compare<DomainT> domain_compare;
/// Comparison functor for intervals
typedef exclusive_less<interval_type> interval_compare;
@@ -132,7 +132,7 @@
typedef typename itl::set<DomainT,Compare,Alloc> atomized_type;
/// Container type for the implementation
- typedef typename itl::set<interval_type,exclusive_less<interval_type>,Alloc> ImplSetT;
+ typedef typename itl::set<interval_type,exclusive_less,Alloc> ImplSetT;
/// key type of the implementing container
typedef typename ImplSetT::key_type key_type;
@@ -199,7 +199,7 @@
void subtract_rest(const interval_type& x_itv, iterator& it, iterator& end_it);
} ;
- template <typename DomainT, template<class>class Interval, class Compare, template<class>class Alloc>
+ template <typename DomainT, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Alloc>
bool split_interval_set<DomainT,Interval,Compare,Alloc>::contains_(const interval_type& interv)const
{
if(interv.empty())
@@ -211,7 +211,7 @@
}
- template <typename DomainT, template<class>class Interval, class Compare, template<class>class Alloc>
+ template <typename DomainT, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Alloc>
void split_interval_set<DomainT,Interval,Compare,Alloc>::add_(const value_type& x)
{
if(x.empty()) return;
@@ -273,7 +273,7 @@
}
- template <typename DomainT, template<class>class Interval, class Compare, template<class>class Alloc>
+ template <typename DomainT, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class 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++;
@@ -314,7 +314,7 @@
}
- template <typename DomainT, template<class>class Interval, class Compare, template<class>class Alloc>
+ template <typename DomainT, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Alloc>
void split_interval_set<DomainT,Interval,Compare,Alloc>::subtract_(const value_type& x)
{
if(x.empty()) return;
@@ -365,7 +365,7 @@
- template <typename DomainT, template<class>class Interval, class Compare, template<class>class Alloc>
+ template <typename DomainT, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class 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++;
@@ -400,7 +400,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>class Interval, class Compare, template<class>class Alloc>
+ template <typename DomainT, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Alloc>
inline bool operator == (const split_interval_set<DomainT,Interval,Compare,Alloc>& lhs,
const split_interval_set<DomainT,Interval,Compare,Alloc>& rhs)
{
@@ -413,7 +413,7 @@
}
- template <typename DomainT, template<class>class Interval, class Compare, template<class>class Alloc>
+ template <typename DomainT, template<class, template<class>class>class Interval, template<class>class Compare, template<class>class Alloc>
inline bool operator < (const split_interval_set<DomainT,Interval,Compare,Alloc>& lhs,
const split_interval_set<DomainT,Interval,Compare,Alloc>& rhs)
{
@@ -422,7 +422,7 @@
return std::lexicographical_compare(
lhs_joined.begin(), lhs_joined.end(),
rhs_joined.begin(), rhs_joined.end(),
- std::less<Interval<DomainT> >()); //JODO URG
+ Compare<Interval<DomainT,Compare> >());
}
template <class Type>
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