Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r65688 - in sandbox/itl: boost/itl boost/itl/concept boost/itl/concept/interval boost/itl/detail boost/itl/type_traits boost/itl_xt/detail boost/validate/driver boost/validate/itl boost/validate/laws libs/itl/example/itvset_shell_ libs/itl/example/large_bitset_ libs/itl/example/splititvmap_shell_ libs/itl/test libs/itl/test/fastest_itl_interval_ libs/validate/example/labat_signed_quantifier_ libs/validate/example/labat_single_
From: afojgo_at_[hidden]
Date: 2010-09-29 16:04:13


Author: jofaber
Date: 2010-09-29 16:03:57 EDT (Wed, 29 Sep 2010)
New Revision: 65688
URL: http://svn.boost.org/trac/boost/changeset/65688

Log:
Refactoring: Cleaning up the code, renaming, removing dependencies to old interval implementation. Stable{msvc-9.0, gcc-3.4.4}
Added:
   sandbox/itl/boost/itl/detail/exclusive_less_than.hpp (contents, props changed)
   sandbox/itl/boost/itl/type_traits/given.hpp (contents, props changed)
Removed:
   sandbox/itl/boost/itl/detail/base_interval.hpp
Text files modified:
   sandbox/itl/boost/itl/closed_interval.hpp | 3
   sandbox/itl/boost/itl/concept/element_associator.hpp | 20 ++--
   sandbox/itl/boost/itl/concept/element_map.hpp | 68 ++++++++--------
   sandbox/itl/boost/itl/concept/element_set.hpp | 4
   sandbox/itl/boost/itl/concept/element_set_value.hpp | 2
   sandbox/itl/boost/itl/concept/interval.hpp | 83 ++++++++++++++-----
   sandbox/itl/boost/itl/concept/interval/base.hpp | 2
   sandbox/itl/boost/itl/concept/interval_associator.hpp | 75 ++++++++++++-----
   sandbox/itl/boost/itl/concept/interval_map.hpp | 26 ++++--
   sandbox/itl/boost/itl/concept/interval_set.hpp | 14 +-
   sandbox/itl/boost/itl/concept/interval_set_value.hpp | 5
   sandbox/itl/boost/itl/concept/map_value.hpp | 8
   sandbox/itl/boost/itl/concept/set_value.hpp | 6
   sandbox/itl/boost/itl/continuous_interval.hpp | 7 +
   sandbox/itl/boost/itl/detail/associated_value.hpp | 8
   sandbox/itl/boost/itl/detail/element_comparer.hpp | 1
   sandbox/itl/boost/itl/detail/element_iterator.hpp | 38 +++++----
   sandbox/itl/boost/itl/detail/interval_map_algo.hpp | 5
   sandbox/itl/boost/itl/detail/interval_morphism.hpp | 10 +-
   sandbox/itl/boost/itl/detail/interval_set_algo.hpp | 55 ------------
   sandbox/itl/boost/itl/detail/interval_subset_comparer.hpp | 1
   sandbox/itl/boost/itl/detail/map_algo.hpp | 4
   sandbox/itl/boost/itl/detail/set_algo.hpp | 12 +-
   sandbox/itl/boost/itl/detail/subset_comparer.hpp | 1
   sandbox/itl/boost/itl/discrete_interval.hpp | 5
   sandbox/itl/boost/itl/dynamic_interval_traits.hpp | 1
   sandbox/itl/boost/itl/interval.hpp | 13 --
   sandbox/itl/boost/itl/interval_base_map.hpp | 4
   sandbox/itl/boost/itl/interval_base_set.hpp | 21 ++++
   sandbox/itl/boost/itl/interval_map.hpp | 1
   sandbox/itl/boost/itl/interval_traits.hpp | 31 ++++++
   sandbox/itl/boost/itl/map.hpp | 11 --
   sandbox/itl/boost/itl/rightopen_interval.hpp | 5
   sandbox/itl/boost/itl/set.hpp | 19 ----
   sandbox/itl/boost/itl/type_traits/codomain_type_of.hpp | 16 +-
   sandbox/itl/boost/itl/type_traits/domain_type_of.hpp | 16 +-
   sandbox/itl/boost/itl/type_traits/element_type_of.hpp | 16 +-
   sandbox/itl/boost/itl/type_traits/has_dynamic_bounds.hpp | 2
   sandbox/itl/boost/itl/type_traits/has_set_semantics.hpp | 12 +-
   sandbox/itl/boost/itl/type_traits/interval_type_of.hpp | 16 +-
   sandbox/itl/boost/itl/type_traits/is_assoc_element_container.hpp | 2
   sandbox/itl/boost/itl/type_traits/is_associative_element_container.hpp | 2
   sandbox/itl/boost/itl/type_traits/is_combinable.hpp | 12 +-
   sandbox/itl/boost/itl/type_traits/is_element_container.hpp | 2
   sandbox/itl/boost/itl/type_traits/is_icl_container.hpp | 2
   sandbox/itl/boost/itl/type_traits/is_key_container_of.hpp | 10 +-
   sandbox/itl/boost/itl/type_traits/no_type.hpp | 2
   sandbox/itl/boost/itl/type_traits/segment_type_of.hpp | 16 +-
   sandbox/itl/boost/itl_xt/detail/bit_element_iterator.hpp | 9 +
   sandbox/itl/boost/validate/driver/itl_driver.hpp | 4
   sandbox/itl/boost/validate/itl/functors.hpp | 4
   sandbox/itl/boost/validate/laws/order.hpp | 20 ++--
   sandbox/itl/libs/itl/example/itvset_shell_/itvset_shell.cpp | 2
   sandbox/itl/libs/itl/example/large_bitset_/large_bitset.hpp | 4
   sandbox/itl/libs/itl/example/splititvmap_shell_/splititvmap_shell.cpp | 2
   sandbox/itl/libs/itl/test/fastest_itl_interval_/fastest_itl_interval.cpp | 6
   sandbox/itl/libs/itl/test/test_calls.hpp | 8
   sandbox/itl/libs/itl/test/test_icl_quantifier_shared.hpp | 168 ++++++++++++++++++++--------------------
   sandbox/itl/libs/itl/test/test_interval_map_mixed.hpp | 8
   sandbox/itl/libs/itl/test/test_interval_map_shared.hpp | 6
   sandbox/itl/libs/itl/test/test_interval_quantifier_shared.hpp | 8
   sandbox/itl/libs/itl/test/test_interval_set_shared.hpp | 8
   sandbox/itl/libs/itl/test/test_itl_interval.hpp | 26 +++--
   sandbox/itl/libs/itl/test/test_itl_interval_shared.hpp | 156 ++++++++++++++++++------------------
   sandbox/itl/libs/itl/test/test_itl_map.hpp | 4
   sandbox/itl/libs/itl/test/test_laws.hpp | 40 ++++----
   sandbox/itl/libs/itl/test/test_set_interval_set_shared.hpp | 34 ++++----
   sandbox/itl/libs/itl/test/test_type_lists.hpp | 2
   sandbox/itl/libs/itl/test/test_value_maker.hpp | 9 +
   sandbox/itl/libs/validate/example/labat_signed_quantifier_/labat_signed_quantifier.cpp | 2
   sandbox/itl/libs/validate/example/labat_single_/labat_single.cpp | 8
   71 files changed, 633 insertions(+), 600 deletions(-)

Modified: sandbox/itl/boost/itl/closed_interval.hpp
==============================================================================
--- sandbox/itl/boost/itl/closed_interval.hpp (original)
+++ sandbox/itl/boost/itl/closed_interval.hpp 2010-09-29 16:03:57 EDT (Wed, 29 Sep 2010)
@@ -10,7 +10,6 @@
 
 #include <boost/itl/type_traits/value_size.hpp>
 #include <boost/itl/type_traits/type_to_string.hpp>
-#include <boost/itl/detail/base_interval.hpp>
 #include <boost/itl/concept/interval.hpp>
 
 namespace boost{namespace itl
@@ -18,7 +17,7 @@
 
 template <class DomainT,
           ITL_COMPARE Compare = ITL_COMPARE_INSTANCE(std::less, DomainT)>
-class closed_interval : public base_interval<DomainT,Compare>
+class closed_interval
 {
 public:
     typedef closed_interval<DomainT,Compare> type;

Modified: sandbox/itl/boost/itl/concept/element_associator.hpp
==============================================================================
--- sandbox/itl/boost/itl/concept/element_associator.hpp (original)
+++ sandbox/itl/boost/itl/concept/element_associator.hpp 2010-09-29 16:03:57 EDT (Wed, 29 Sep 2010)
@@ -28,14 +28,14 @@
 typename enable_if<is_associative_element_container<Type>, typename Type::size_type>::type
 size(const Type& object)
 {
- return itl::iterative_size(object);
+ return itl::iterative_size(object);
 }
 
 template<class Type>
 typename enable_if<is_associative_element_container<Type>, typename Type::size_type>::type
 cardinality(const Type& object)
 {
- return itl::iterative_size(object);
+ return itl::iterative_size(object);
 }
 
 
@@ -241,7 +241,7 @@
 typename enable_if<is_associative_element_container<Type>,
                    typename Type::iterator>::type
 insert(Type& object, typename Type::iterator prior,
- const typename Type::element_type& operand)
+ const typename Type::element_type& operand)
 {
     return object.insert(prior, operand);
 }
@@ -270,12 +270,12 @@
 typename enable_if<is_associative_element_container<Type>, typename Type::size_type>::type
 erase(Type& object, const typename Type::domain_type& key_value)
 {
- typedef typename Type::size_type size_type;
+ typedef typename Type::size_type size_type;
     typename Type::iterator it_ = object.find(key_value);
     if(it_ != object.end())
     {
         object.erase(it_);
- return unon<size_type>::value();
+ return unon<size_type>::value();
     }
     return neutron<size_type>::value();
 }
@@ -336,7 +336,7 @@
 template<class Type>
 inline typename enable_if<is_associative_element_container<Type>, void>::type
 add_intersection(Type& section, const Type& object,
- const typename Type::domain_type& operand)
+ const typename Type::domain_type& operand)
 {
     typedef typename Type::const_iterator const_iterator;
     const_iterator it_ = object.find(operand);
@@ -350,10 +350,10 @@
 template<class Type>
 inline typename enable_if<is_associative_element_container<Type>, void>::type
 add_intersection(Type& section, const Type& object,
- const typename Type::key_object_type& operand)
+ const typename Type::key_object_type& operand)
 {
     typedef typename Type::key_object_type key_object_type;
- typedef typename key_object_type::const_iterator const_iterator;
+ typedef typename key_object_type::const_iterator const_iterator;
     const_iterator common_lwb_, common_upb_;
     if(!Set::common_range(common_lwb_, common_upb_, operand, object))
         return;
@@ -415,14 +415,14 @@
 inline typename enable_if<is_associative_element_container<Type>, Type>::type
 operator ^ (Type object, const typename Type::element_type& operand)
 {
- return itl::flip(object, operand);
+ return itl::flip(object, operand);
 }
 
 template<class Type>
 inline typename enable_if<is_associative_element_container<Type>, Type>::type
 operator ^ (const typename Type::element_type& operand, Type object)
 {
- return itl::flip(object, operand);
+ return itl::flip(object, operand);
 }
 
 template<class Type>

Modified: sandbox/itl/boost/itl/concept/element_map.hpp
==============================================================================
--- sandbox/itl/boost/itl/concept/element_map.hpp (original)
+++ sandbox/itl/boost/itl/concept/element_map.hpp 2010-09-29 16:03:57 EDT (Wed, 29 Sep 2010)
@@ -101,12 +101,12 @@
 typename enable_if<is_element_map<Type>, typename Type::size_type>::type
 erase(Type& object, const typename Type::element_type& value_pair)
 {
- typedef typename Type::size_type size_type;
- typedef typename Type::iterator iterator;
- typedef typename Type::on_neutron_absorbtion on_neutron_absorbtion;
+ typedef typename Type::size_type size_type;
+ typedef typename Type::iterator iterator;
+ typedef typename Type::on_neutron_absorbtion on_neutron_absorbtion;
 
- if(on_neutron_absorbtion::is_absorbable(value_pair.second))
- return neutron<size_type>::value();
+ if(on_neutron_absorbtion::is_absorbable(value_pair.second))
+ return neutron<size_type>::value();
 
     iterator it_ = object.find(value_pair.first);
     if(it_ != object.end() && value_pair.second == it_->second)
@@ -149,7 +149,7 @@
 typename enable_if<is_element_map<Type>, Type>::type&
 subtract(Type& object, const typename Type::domain_type& key_value)
 {
- return itl::erase(object, key_value);
+ return itl::erase(object, key_value);
 }
 
 //------------------------------------------------------------------------------
@@ -179,18 +179,18 @@
 inline typename enable_if<is_element_map<Type>, Type>::type&
 set_at(Type& object, const typename Type::element_type& operand)
 {
- typedef typename Type::iterator iterator;
- typedef typename Type::codomain_combine codomain_combine;
- typedef on_absorbtion<Type,codomain_combine,absorbs_neutrons<Type>::value>
- on_neutron_absorbtion;
+ typedef typename Type::iterator iterator;
+ typedef typename Type::codomain_combine codomain_combine;
+ typedef on_absorbtion<Type,codomain_combine,absorbs_neutrons<Type>::value>
+ on_neutron_absorbtion;
 
     if(!on_neutron_absorbtion::is_absorbable(operand.second))
- {
- std::pair<iterator,bool> insertion = object.insert(operand);
- if(!insertion.second)
- insertion->second = operand.second;
- }
- return object;
+ {
+ std::pair<iterator,bool> insertion = object.insert(operand);
+ if(!insertion.second)
+ insertion->second = operand.second;
+ }
+ return object;
 }
 
 
@@ -200,9 +200,9 @@
 template<class Type>
 inline typename enable_if<is_element_map<Type>, void>::type
 add_intersection(Type& section, const Type& object,
- const typename Type::element_type& operand)
+ const typename Type::element_type& operand)
 {
- object.add_intersection(section, operand);
+ object.add_intersection(section, operand);
 }
 
 template<class Type>
@@ -221,8 +221,8 @@
 inline typename enable_if<mpl::and_<is_element_map<Type>, is_total<Type> >, Type>::type&
 operator &=(Type& object, const typename Type::element_type& operand)
 {
- object.add(operand);
- return object;
+ object.add(operand);
+ return object;
 }
 
 template<class Type>
@@ -255,7 +255,7 @@
 operator &=(Type& object, const Type& operand)
 {
     object += operand;
- return object;
+ return object;
 }
 
 template<class Type>
@@ -298,7 +298,7 @@
                          , bool>::type
 intersects(const Type&, const CoType&)
 {
- return true;
+ return true;
 }
 
 template<class Type>
@@ -307,7 +307,7 @@
                          , bool>::type
 intersects(const Type& object, const typename Type::domain_type& operand)
 {
- return itl::contains(object, operand);
+ return itl::contains(object, operand);
 }
 
 template<class Type>
@@ -329,7 +329,7 @@
 intersects(const Type& object, const typename Type::element_type& operand)
 {
     Type intersection;
- itl::add_intersection(intersection, object, operand);
+ itl::add_intersection(intersection, object, operand);
     return !intersection.empty();
 }
 
@@ -352,7 +352,7 @@
 inline typename enable_if<is_element_map<Type>, Type>::type&
 flip(Type& object, const typename Type::element_type& operand)
 {
- return object.flip(operand);
+ return object.flip(operand);
 }
 
 template<class Type, class CoType>
@@ -362,8 +362,8 @@
                          , Type>::type&
 operator ^= (Type& object, const CoType&)
 {
- itl::clear(object);
- return object;
+ itl::clear(object);
+ return object;
 }
 
 template<class Type>
@@ -373,7 +373,7 @@
                          , Type>::type&
 operator ^= (Type& object, const typename Type::element_type& operand)
 {
- return object.flip(operand);
+ return object.flip(operand);
 }
 
 template<class Type>
@@ -383,13 +383,13 @@
                          , Type>::type&
 operator ^= (Type& object, const Type& operand)
 {
- ITL_const_FORALL(typename Type, it_, operand)
- itl::flip(object, *it_);
+ ITL_const_FORALL(typename Type, it_, operand)
+ itl::flip(object, *it_);
 
     ITL_FORALL(typename Type, it2_, object)
         it2_->second = neutron<typename Type::codomain_type>::value();
 
- return object;
+ return object;
 }
 
 
@@ -443,14 +443,14 @@
                                    , absorbs_neutrons<Type> >, Type>::type&
 absorb_neutrons(Type& object)
 {
- typedef typename Type::element_type element_type;
- return itl::erase_if(content_is_neutron<element_type>(), object);
+ typedef typename Type::element_type element_type;
+ return itl::erase_if(content_is_neutron<element_type>(), object);
 }
 
 template<class Type>
 inline typename enable_if<mpl::and_< is_element_map<Type>
                                    , mpl::not_<absorbs_neutrons<Type> > >
- , Type>::type&
+ , Type>::type&
 absorb_neutrons(Type&){}
 
 //==============================================================================

Modified: sandbox/itl/boost/itl/concept/element_set.hpp
==============================================================================
--- sandbox/itl/boost/itl/concept/element_set.hpp (original)
+++ sandbox/itl/boost/itl/concept/element_set.hpp 2010-09-29 16:03:57 EDT (Wed, 29 Sep 2010)
@@ -49,7 +49,7 @@
 typename enable_if<is_element_set<Type>, Type>::type&
 subtract(Type& object, const typename Type::element_type& operand)
 {
- object.erase(operand);
+ object.erase(operand);
     return object;
 }
 
@@ -68,7 +68,7 @@
 inline typename enable_if<is_element_set<Type>, bool>::type
 intersects(const Type& object, const typename Type::domain_type& operand)
 {
- return itl::contains(object, operand);
+ return itl::contains(object, operand);
 }
 
 template<class Type>

Modified: sandbox/itl/boost/itl/concept/element_set_value.hpp
==============================================================================
--- sandbox/itl/boost/itl/concept/element_set_value.hpp (original)
+++ sandbox/itl/boost/itl/concept/element_set_value.hpp 2010-09-29 16:03:57 EDT (Wed, 29 Sep 2010)
@@ -20,7 +20,7 @@
 inline typename enable_if<is_element_set<Type>, const typename Type::key_type>::type&
 co_value(Iterator it_)
 {
- return *it_;
+ return *it_;
 }
 
 

Modified: sandbox/itl/boost/itl/concept/interval.hpp
==============================================================================
--- sandbox/itl/boost/itl/concept/interval.hpp (original)
+++ sandbox/itl/boost/itl/concept/interval.hpp 2010-09-29 16:03:57 EDT (Wed, 29 Sep 2010)
@@ -10,8 +10,16 @@
 
 #include <boost/utility/enable_if.hpp>
 #include <boost/mpl/and.hpp>
+#include <boost/mpl/or.hpp>
+#include <boost/mpl/not.hpp>
 #include <boost/detail/is_incrementable.hpp>
 #include <boost/itl/detail/design_config.hpp>
+#include <boost/itl/type_traits/given.hpp>
+#include <boost/itl/type_traits/unon.hpp>
+#include <boost/itl/type_traits/neutron.hpp>
+#include <boost/itl/type_traits/infinity.hpp>
+#include <boost/itl/type_traits/succ_pred.hpp>
+#include <boost/itl/type_traits/is_numeric.hpp>
 #include <boost/itl/type_traits/is_discrete.hpp>
 #include <boost/itl/type_traits/is_asymmetric_interval.hpp>
 #include <boost/itl/type_traits/is_universal_interval.hpp>
@@ -80,7 +88,8 @@
 construct(const typename interval_traits<Type>::domain_type& value)
 {
     //ASSERT: This always creates an interval with exactly one element
- BOOST_ASSERT((std::numeric_limits<Type>::min)() < value);
+ BOOST_ASSERT(given<is_numeric<Type>::value>
+ ::then((std::numeric_limits<Type>::min)() < value));
     return interval_traits<Type>::construct(itl::pred(value), value);
 }
 
@@ -94,7 +103,8 @@
 construct(const typename interval_traits<Type>::domain_type& value)
 {
     //ASSERT: This always creates an interval with exactly one element
- BOOST_ASSERT((std::numeric_limits<Type>::min)() < value);
+ BOOST_ASSERT(given<is_numeric<Type>::value>
+ ::then((std::numeric_limits<Type>::min)() < value));
     return interval_traits<Type>::construct(itl::pred(value), itl::succ(value));
 }
 
@@ -185,14 +195,25 @@
 
 //- first ----------------------------------------------------------------------
 template<class Type>
-inline typename enable_if<is_static_rightopen<Type>,
- typename interval_traits<Type>::domain_type>::type
+inline typename
+enable_if< mpl::or_<is_static_rightopen<Type>, is_static_closed<Type> >
+ , typename interval_traits<Type>::domain_type>::type
 first(const Type& object)
 {
     return lower(object);
 }
 
 template<class Type>
+inline typename
+enable_if< mpl::and_< mpl::or_<is_static_leftopen<Type>, is_static_open<Type> >
+ , is_discrete<typename interval_traits<Type>::domain_type> >
+ , typename interval_traits<Type>::domain_type>::type
+first(const Type& object)
+{
+ return succ(lower(object));
+}
+
+template<class Type>
 inline typename enable_if<is_discrete_interval<Type>,
                           typename interval_traits<Type>::domain_type>::type
 first(const Type& object)
@@ -204,11 +225,23 @@
 
 //- last -----------------------------------------------------------------------
 template<class Type>
-inline typename enable_if<mpl::and_<is_static_rightopen<Type>,
- is_discrete<typename interval_traits<Type>::domain_type> >,
- typename interval_traits<Type>::domain_type>::type
+inline typename
+enable_if< mpl::or_<is_static_leftopen<Type>, is_static_closed<Type> >
+ , typename interval_traits<Type>::domain_type>::type
 last(const Type& object)
 {
+ return upper(object);
+}
+
+template<class Type>
+inline typename
+enable_if< mpl::and_< mpl::or_<is_static_rightopen<Type>, is_static_open<Type> >
+ , is_discrete<typename interval_traits<Type>::domain_type> >
+ , typename interval_traits<Type>::domain_type>::type
+last(const Type& object)
+{
+ BOOST_ASSERT(given<is_numeric<Type>::value>
+ ::then((std::numeric_limits<Type>::min)() < upper(object)));
     return pred(upper(object));
 }
 
@@ -606,10 +639,10 @@
 
 template<class Type>
 typename boost::enable_if<is_continuous_interval<Type>,
- typename Type::size_type>::type
+ typename size_type_of<interval_traits<Type> >::type>::type
 cardinality(const Type& object)
 {
- typedef typename Type::size_type SizeT;
+ typedef typename size_type_of<interval_traits<Type> >::type SizeT;
     if(itl::is_empty(object))
         return itl::neutron<SizeT>::value();
     else if( object.bounds() == interval_bounds::closed()
@@ -621,19 +654,20 @@
 
 template<class Type>
 typename boost::enable_if<is_discrete_interval<Type>,
- typename Type::size_type>::type
+ typename size_type_of<interval_traits<Type> >::type>::type
 cardinality(const Type& object)
 {
- return (last(object) + itl::unon<typename Type::size_type>::value()) - first(object);
+ typedef typename size_type_of<interval_traits<Type> >::type SizeT;
+ return (last(object) + itl::unon<SizeT>::value()) - first(object);
 }
 
 
 template<class Type>
 typename boost::enable_if<is_continuous_asymmetric<Type>,
- typename Type::size_type>::type
+ typename size_type_of<interval_traits<Type> >::type>::type
 cardinality(const Type& object)
 {
- typedef typename Type::size_type SizeT;
+ typedef typename size_type_of<interval_traits<Type> >::type SizeT;
     if(itl::is_empty(object))
         return itl::neutron<SizeT>::value();
     else
@@ -642,10 +676,11 @@
 
 template<class Type>
 typename boost::enable_if<is_discrete_asymmetric<Type>,
- typename Type::size_type>::type
+ typename size_type_of<interval_traits<Type> >::type>::type
 cardinality(const Type& object)
 {
- return (last(object) + itl::unon<typename Type::size_type>::value()) - first(object);
+ typedef typename size_type_of<interval_traits<Type> >::type SizeT;
+ return (last(object) + itl::unon<SizeT>::value()) - first(object);
 }
 
 
@@ -655,7 +690,7 @@
 //- size -----------------------------------------------------------------------
 template<class Type>
 inline typename enable_if<is_interval<Type>,
- typename Type::size_type>::type
+ typename size_type_of<interval_traits<Type> >::type>::type
 size(const Type& object)
 {
     return cardinality(object);
@@ -663,8 +698,8 @@
 
 //- length ---------------------------------------------------------------------
 template<class Type>
-typename boost::enable_if<is_continuous_interval<Type>,
- typename Type::difference_type>::type
+inline typename boost::enable_if<is_continuous_interval<Type>,
+ typename difference_type_of<interval_traits<Type> >::type>::type
 length(const Type& object)
 {
     return upper(object) - lower(object);
@@ -672,16 +707,17 @@
 
 template<class Type>
 inline typename boost::enable_if<is_discrete_interval<Type>,
- typename Type::difference_type>::type
+ typename difference_type_of<interval_traits<Type> >::type>::type
 length(const Type& object)
 {
- return (last(object) + itl::unon<typename Type::difference_type>::value())
+ typedef typename difference_type_of<interval_traits<Type> >::type DiffT;
+ return (last(object) + itl::unon<DiffT>::value())
             - first(object);
 }
 
 template<class Type>
 typename boost::enable_if<is_continuous_asymmetric<Type>,
- typename Type::difference_type>::type
+ typename difference_type_of<interval_traits<Type> >::type>::type
 length(const Type& object)
 {
     return upper(object) - lower(object);
@@ -689,10 +725,11 @@
 
 template<class Type>
 inline typename boost::enable_if<is_discrete_asymmetric<Type>,
- typename Type::difference_type>::type
+ typename difference_type_of<interval_traits<Type> >::type>::type
 length(const Type& object)
 {
- return (last(object) + itl::unon<typename Type::difference_type>::value())
+ typedef typename difference_type_of<interval_traits<Type> >::type DiffT;
+ return (last(object) + itl::unon<DiffT>::value())
             - first(object);
 }
 

Modified: sandbox/itl/boost/itl/concept/interval/base.hpp
==============================================================================
--- sandbox/itl/boost/itl/concept/interval/base.hpp (original)
+++ sandbox/itl/boost/itl/concept/interval/base.hpp 2010-09-29 16:03:57 EDT (Wed, 29 Sep 2010)
@@ -19,7 +19,7 @@
 {
     typedef typename Type::interval_type interval_type;
     typedef typename Type::segment_type segment_type;
- return segment_type(itl::construct<interval_type>(element.key), element.data);
+ return segment_type(itl::construct<interval_type>(element.key), element.data);
 }
 
 namespace segmental

Modified: sandbox/itl/boost/itl/concept/interval_associator.hpp
==============================================================================
--- sandbox/itl/boost/itl/concept/interval_associator.hpp (original)
+++ sandbox/itl/boost/itl/concept/interval_associator.hpp 2010-09-29 16:03:57 EDT (Wed, 29 Sep 2010)
@@ -42,7 +42,7 @@
 inline typename enable_if<is_interval_container<Type>, bool>::type
 operator < (const Type& left, const Type& right)
 {
- typedef typename Type::segment_compare segment_compare;
+ typedef typename Type::segment_compare segment_compare;
     return std::lexicographical_compare(
         left.begin(), left.end(), right.begin(), right.end(),
         segment_compare()
@@ -111,38 +111,65 @@
 //= Size<IntervalSet|IntervalMap>
 //==============================================================================
 template<class Type>
-typename enable_if<is_interval_container<Type>, typename Type::size_type>::type
+typename enable_if
+< mpl::and_< is_interval_container<Type>
+ , is_discrete<typename Type::domain_type> >
+, typename Type::size_type
+>::type
 cardinality(const Type& object)
 {
- using namespace boost::mpl;
- typedef typename Type::domain_type domain_type;
+ typedef typename Type::size_type size_type;
+ typedef typename Type::interval_type interval_type;
 
- return if_<
- bool_<is_continuous<domain_type>::value>,
- continuous_interval_container,
- discrete_interval_container
- >
- ::type::cardinality(object);
+ size_type size = neutron<size_type>::value();
+ ITL_const_FORALL(typename Type, it, object)
+ size += itl::cardinality(key_value<Type>(it));
+ return size;
+
+}
+
+template<class Type>
+typename enable_if
+< mpl::and_< is_interval_container<Type>
+ , mpl::not_<is_discrete<typename Type::domain_type> > >
+, typename Type::size_type
+>::type
+cardinality(const Type& object)
+{
+ typedef typename Type::size_type size_type;
+ typedef typename Type::interval_type interval_type;
+
+ size_type size = neutron<size_type>::value();
+ size_type interval_size;
+ ITL_const_FORALL(typename Type, it, object)
+ {
+ interval_size = itl::cardinality(key_value<Type>(it));
+ if(interval_size == infinity<size_type>::value())
+ return interval_size;
+ else
+ size += interval_size;
+ }
+ return size;
 }
 
 template<class Type>
 inline typename enable_if<is_interval_container<Type>, typename Type::size_type>::type
 size(const Type& object)
 {
- return itl::cardinality(object);
+ return itl::cardinality(object);
 }
 
 template<class Type>
 typename enable_if<is_interval_container<Type>, typename Type::difference_type>::type
 length(const Type& object)
 {
- typedef typename Type::difference_type difference_type;
- typedef typename Type::const_iterator const_iterator;
+ typedef typename Type::difference_type difference_type;
+ typedef typename Type::const_iterator const_iterator;
     difference_type length = neutron<difference_type>::value();
- const_iterator it_ = object.begin();
+ const_iterator it_ = object.begin();
 
- while(it_ != object.end())
- length += itl::length(key_value<Type>(it_++));
+ while(it_ != object.end())
+ length += itl::length(key_value<Type>(it_++));
     return length;
 }
 
@@ -150,7 +177,7 @@
 typename enable_if<is_interval_container<Type>, std::size_t>::type
 interval_count(const Type& object)
 {
- return itl::iterative_size(object);
+ return itl::iterative_size(object);
 }
 
 //==============================================================================
@@ -717,7 +744,7 @@
 typename Type::element_iterator>::type
 elements_begin(Type& object)
 {
- return typename Type::element_iterator(object.begin());
+ return typename Type::element_iterator(object.begin());
 }
 
 template<class Type>
@@ -737,7 +764,7 @@
 typename Type::element_const_iterator>::type
 elements_begin(const Type& object)
 {
- return typename Type::element_const_iterator(object.begin());
+ return typename Type::element_const_iterator(object.begin());
 }
 
 template<class Type>
@@ -747,7 +774,7 @@
 typename Type::element_const_iterator>::type
 elements_end(const Type& object)
 {
- return typename Type::element_const_iterator(object.end());
+ return typename Type::element_const_iterator(object.end());
 }
 
 //--------------------------------------------------------------------------
@@ -760,7 +787,7 @@
 typename Type::element_reverse_iterator>::type
 elements_rbegin(Type& object)
 {
- return typename Type::element_reverse_iterator(object.rbegin());
+ return typename Type::element_reverse_iterator(object.rbegin());
 }
 
 template<class Type>
@@ -770,7 +797,7 @@
 typename Type::element_reverse_iterator>::type
 elements_rend(Type& object)
 {
- return typename Type::element_reverse_iterator(object.rend());
+ return typename Type::element_reverse_iterator(object.rend());
 }
 
 template<class Type>
@@ -780,7 +807,7 @@
 typename Type::element_const_reverse_iterator>::type
 elements_rbegin(const Type& object)
 {
- return typename Type::element_const_reverse_iterator(object.rbegin());
+ return typename Type::element_const_reverse_iterator(object.rbegin());
 }
 
 template<class Type>
@@ -790,7 +817,7 @@
 typename Type::element_const_reverse_iterator>::type
 elements_rend(const Type& object)
 {
- return typename Type::element_const_reverse_iterator(object.rend());
+ return typename Type::element_const_reverse_iterator(object.rend());
 }
 
 //==============================================================================

Modified: sandbox/itl/boost/itl/concept/interval_map.hpp
==============================================================================
--- sandbox/itl/boost/itl/concept/interval_map.hpp (original)
+++ sandbox/itl/boost/itl/concept/interval_map.hpp 2010-09-29 16:03:57 EDT (Wed, 29 Sep 2010)
@@ -77,7 +77,7 @@
             , bool>::type
 contains(const Type& super, const CoType& sub)
 {
- return true;
+ return true;
 }
 
 //------------------------------------------------------------------------------
@@ -140,7 +140,7 @@
 typename enable_if<is_interval_map<Type>, Type>::type&
 add(Type& object, const typename Type::element_type& operand)
 {
- return itl::add(object, make_segment<Type>(operand));
+ return itl::add(object, make_segment<Type>(operand));
 }
 
 //------------------------------------------------------------------------------
@@ -171,7 +171,7 @@
 inline typename enable_if<is_interval_map<Type>, Type>::type&
 insert(Type& object, const typename Type::element_type& operand)
 {
- return itl::insert(object, make_segment<Type>(operand));
+ return itl::insert(object, make_segment<Type>(operand));
 }
 
 //------------------------------------------------------------------------------
@@ -203,8 +203,8 @@
 typename enable_if<is_interval_map<Type>, Type>::type&
 erase(Type& object, const typename Type::domain_type& operand)
 {
- typedef typename Type::interval_type interval_type;
- return itl::erase(object, itl::construct<interval_type>(operand));
+ typedef typename Type::interval_type interval_type;
+ return itl::erase(object, itl::construct<interval_type>(operand));
 }
 
 //------------------------------------------------------------------------------
@@ -221,7 +221,7 @@
 inline typename enable_if<is_interval_map<Type>, Type>::type&
 erase(Type& object, const typename Type::element_type& operand)
 {
- return itl::erase(object, make_segment<Type>(operand));
+ return itl::erase(object, make_segment<Type>(operand));
 }
 
 //==============================================================================
@@ -241,7 +241,7 @@
 typename enable_if<is_interval_map<Type>, Type>::type&
 subtract(Type& object, const typename Type::element_type& operand)
 {
- return itl::subtract(object, make_segment<Type>(operand));
+ return itl::subtract(object, make_segment<Type>(operand));
 }
 
 //------------------------------------------------------------------------------
@@ -293,7 +293,7 @@
 add_intersection(Type& section, const Type& object,
                  const typename Type::element_type& operand)
 {
- typedef typename Type::segment_type segment_type;
+ typedef typename Type::segment_type segment_type;
     object.add_intersection(section, make_segment<Type>(operand));
 }
 
@@ -461,7 +461,7 @@
 inline typename enable_if<is_interval_map<Type>, Type>::type&
 flip(Type& object, const typename Type::element_type& operand)
 {
- return itl::flip(object, make_segment<Type>(operand));
+ return itl::flip(object, make_segment<Type>(operand));
 }
 
 //------------------------------------------------------------------------------
@@ -483,6 +483,10 @@
 //------------------------------------------------------------------------------
 //- T& flip(T&, c P&) T:{M} P:{M'} total enricher
 //------------------------------------------------------------------------------
+#ifdef BOOST_MSVC
+#pragma warning(push)
+#pragma warning(disable:4127) // conditional expression is constant
+#endif
 template<class Type, class OperandT>
 typename enable_if< mpl::and_< is_total<Type>
                              , mpl::not_<absorbs_neutrons<Type> >
@@ -503,6 +507,10 @@
 
     return object;
 }
+#ifdef BOOST_MSVC
+#pragma warning(pop)
+#endif
+
 
 //------------------------------------------------------------------------------
 //- T& flip(T&, c P&) T:{M} P:{M'} partial

Modified: sandbox/itl/boost/itl/concept/interval_set.hpp
==============================================================================
--- sandbox/itl/boost/itl/concept/interval_set.hpp (original)
+++ sandbox/itl/boost/itl/concept/interval_set.hpp 2010-09-29 16:03:57 EDT (Wed, 29 Sep 2010)
@@ -65,15 +65,15 @@
 typename enable_if<is_interval_set<Type>, Type>::type&
 add(Type& object, const typename Type::segment_type& operand)
 {
- return object.add(operand);
+ return object.add(operand);
 }
 
 template<class Type>
 inline typename enable_if<is_interval_set<Type>, Type>::type&
 add(Type& object, const typename Type::element_type& operand)
 {
- typedef typename Type::segment_type segment_type;
- return itl::add(object, itl::construct<segment_type>(operand));
+ typedef typename Type::segment_type segment_type;
+ return itl::add(object, itl::construct<segment_type>(operand));
 }
 
 //------------------------------------------------------------------------------
@@ -84,7 +84,7 @@
 add(Type& object, typename Type::iterator prior,
             const typename Type::segment_type& operand)
 {
- return object.add(prior, operand);
+ return object.add(prior, operand);
 }
 
 //==============================================================================
@@ -113,7 +113,7 @@
 template<class Type>
 typename enable_if<is_interval_set<Type>, Type>::type&
 insert(Type& object, const typename Type::iterator prior,
- const typename Type::segment_type& operand)
+ const typename Type::segment_type& operand)
 {
     return itl::add(object, prior, operand);
 }
@@ -155,8 +155,8 @@
 inline typename enable_if<is_interval_set<Type>, Type>::type&
 subtract(Type& object, const typename Type::element_type& operand)
 {
- typedef typename Type::segment_type segment_type;
- return itl::subtract(object, itl::construct<segment_type>(operand));
+ typedef typename Type::segment_type segment_type;
+ return itl::subtract(object, itl::construct<segment_type>(operand));
 }
 
 //==============================================================================

Modified: sandbox/itl/boost/itl/concept/interval_set_value.hpp
==============================================================================
--- sandbox/itl/boost/itl/concept/interval_set_value.hpp (original)
+++ sandbox/itl/boost/itl/concept/interval_set_value.hpp 2010-09-29 16:03:57 EDT (Wed, 29 Sep 2010)
@@ -10,6 +10,7 @@
 
 #include <boost/utility/enable_if.hpp>
 #include <boost/itl/type_traits/is_interval_container.hpp>
+#include <boost/itl/concept/interval.hpp>
 
 namespace boost{ namespace itl
 {
@@ -21,8 +22,8 @@
 inline typename enable_if<is_interval_set<Type>, typename Type::codomain_type>::type
 co_value(Iterator value_)
 {
- typedef typename Type::codomain_type codomain_type;
- return itl::is_empty(*value_)? codomain_type() : (*value_).lower();
+ typedef typename Type::codomain_type codomain_type;
+ return itl::is_empty(*value_)? codomain_type() : (*value_).lower();
 }
 
 }} // namespace boost itl

Modified: sandbox/itl/boost/itl/concept/map_value.hpp
==============================================================================
--- sandbox/itl/boost/itl/concept/map_value.hpp (original)
+++ sandbox/itl/boost/itl/concept/map_value.hpp 2010-09-29 16:03:57 EDT (Wed, 29 Sep 2010)
@@ -20,22 +20,22 @@
 inline typename enable_if<is_map<Type>, const typename Type::key_type>::type&
 key_value(Iterator it_)
 {
- return it_->first;
+ return it_->first;
 }
 
 template<class Type, class Iterator>
 inline typename enable_if<is_map<Type>, const typename Type::codomain_type>::type&
 co_value(Iterator it_)
 {
- return it_->second;
+ return it_->second;
 }
 
 template<class Type>
 inline typename enable_if<is_map<Type>, typename Type::value_type>::type
 make_value(const typename Type:: key_type& key_val,
- const typename Type::codomain_type& co_val)
+ const typename Type::codomain_type& co_val)
 {
- return typename Type::value_type(key_val, co_val);
+ return typename Type::value_type(key_val, co_val);
 }
 
 

Modified: sandbox/itl/boost/itl/concept/set_value.hpp
==============================================================================
--- sandbox/itl/boost/itl/concept/set_value.hpp (original)
+++ sandbox/itl/boost/itl/concept/set_value.hpp 2010-09-29 16:03:57 EDT (Wed, 29 Sep 2010)
@@ -20,15 +20,15 @@
 inline typename enable_if<is_set<Type>, const typename Type::key_type>::type&
 key_value(Iterator it_)
 {
- return *it_;
+ return *it_;
 }
 
 template<class Type>
 inline typename enable_if<is_set<Type>, typename Type::value_type>::type
 make_value(const typename Type:: key_type& key_val,
- const typename Type::codomain_type& )
+ const typename Type::codomain_type& )
 {
- return typename Type::value_type(key_val);
+ return typename Type::value_type(key_val);
 }
 
 

Modified: sandbox/itl/boost/itl/continuous_interval.hpp
==============================================================================
--- sandbox/itl/boost/itl/continuous_interval.hpp (original)
+++ sandbox/itl/boost/itl/continuous_interval.hpp 2010-09-29 16:03:57 EDT (Wed, 29 Sep 2010)
@@ -8,11 +8,14 @@
 #ifndef BOOST_ITL_CONTINUOUS_INTERVAL_HPP_JOFA_100327
 #define BOOST_ITL_CONTINUOUS_INTERVAL_HPP_JOFA_100327
 
+#include <functional>
+#include <boost/static_assert.hpp>
+#include <boost/concept/assert.hpp>
+#include <boost/itl/detail/concept_check.hpp>
 #include <boost/itl/type_traits/value_size.hpp>
 #include <boost/itl/type_traits/type_to_string.hpp>
 #include <boost/itl/type_traits/is_continuous.hpp>
 #include <boost/itl/type_traits/is_continuous_interval.hpp>
-#include <boost/itl/detail/base_interval.hpp>
 #include <boost/itl/interval_bounds.hpp>
 #include <boost/itl/concept/interval.hpp>
 
@@ -21,7 +24,7 @@
 
 template <class DomainT,
           ITL_COMPARE Compare = ITL_COMPARE_INSTANCE(std::less, DomainT)>
-class continuous_interval : public base_interval<DomainT,Compare>
+class continuous_interval
 {
 public:
     typedef continuous_interval<DomainT,Compare> type;

Modified: sandbox/itl/boost/itl/detail/associated_value.hpp
==============================================================================
--- sandbox/itl/boost/itl/detail/associated_value.hpp (original)
+++ sandbox/itl/boost/itl/detail/associated_value.hpp 2010-09-29 16:03:57 EDT (Wed, 29 Sep 2010)
@@ -21,9 +21,9 @@
                              , mpl::and_<is_map<Type>, is_map<CoType> > >,
                     bool>::type
 co_equal(typename Type::const_iterator left_, typename CoType::const_iterator right_,
- const Type* = 0, const CoType* = 0)
+ const Type* = 0, const CoType* = 0)
 {
- return co_value<Type>(left_) == co_value<CoType>(right_);
+ return co_value<Type>(left_) == co_value<CoType>(right_);
 }
 
 template<class Type, class CoType>
@@ -31,9 +31,9 @@
                              , mpl::not_<mpl::and_<is_map<Type>, is_map<CoType> > > >,
                   bool>::type
 co_equal(typename Type::const_iterator, typename CoType::const_iterator,
- const Type* = 0, const CoType* = 0)
+ const Type* = 0, const CoType* = 0)
 {
- return true;
+ return true;
 }
 
 

Deleted: sandbox/itl/boost/itl/detail/base_interval.hpp
==============================================================================
--- sandbox/itl/boost/itl/detail/base_interval.hpp 2010-09-29 16:03:57 EDT (Wed, 29 Sep 2010)
+++ (empty file)
@@ -1,78 +0,0 @@
-/*-----------------------------------------------------------------------------+
-Copyright (c) 2010-2010: Joachim Faulhaber
-+------------------------------------------------------------------------------+
- Distributed under the Boost Software License, Version 1.0.
- (See accompanying file LICENCE.txt or copy at
- http://www.boost.org/LICENSE_1_0.txt)
-+-----------------------------------------------------------------------------*/
-#ifndef BOOST_ITL_BASE_INTERVAL_HPP_JOFA_100323
-#define BOOST_ITL_BASE_INTERVAL_HPP_JOFA_100323
-
-#include <functional>
-#include <boost/call_traits.hpp>
-#include <boost/concept_check.hpp>
-#include <boost/itl/detail/design_config.hpp>
-#include <boost/itl/type_traits/difference_type_of.hpp>
-#include <boost/itl/type_traits/size_type_of.hpp>
-
-namespace boost{namespace itl
-{
-
-template <class DomainT, ITL_COMPARE Compare = ITL_COMPARE_INSTANCE(std::less, DomainT)>
-struct base_interval
-{
- //==========================================================================
- //= Associated types
- //==========================================================================
- typedef base_interval<DomainT,Compare> type;
-
- //--------------------------------------------------------------------------
- //- Associated types: Data
- //--------------------------------------------------------------------------
- /// The domain type of the interval
- typedef DomainT domain_type;
- /// The codomaintype is the same as domain_type
- typedef DomainT codomain_type;
- /// The element type of the interval
- typedef DomainT element_type;
- /// The segment type is the interval's type
- typedef type segment_type;
- /// The interval type is the interval's type
- typedef type interval_type;
-
- //--------------------------------------------------------------------------
- //- Associated types: Implementation and stl related
- //--------------------------------------------------------------------------
- typedef DomainT key_type;
- typedef DomainT data_type;
- typedef DomainT value_type;
-
- /// Compare order on the data
- typedef ITL_COMPARE_DOMAIN(Compare,DomainT) domain_compare;
- typedef domain_compare key_compare;
-
- /// The difference type of an interval which is sometimes different form the domain_type
- typedef typename itl::difference_type_of<DomainT>::type difference_type;
-
- /// The size type of an interval which is mostly std::size_t
- typedef typename itl::size_type_of<DomainT>::type size_type;
-
- typedef typename boost::call_traits<DomainT>::param_type domain_param;
-
- /** Less compare of interval elements. */
- inline static bool domain_less(domain_param left, domain_param right)
- { return domain_compare()(left, right) ;}
-
- /** Less or equal compare of interval elements. */
- inline static bool domain_less_equal(domain_param left, domain_param right)
- { return !domain_compare()(right, left );}
-
- /** Equality compare of interval elements. */
- inline static bool domain_equal(domain_param left, domain_param right)
- { return !domain_compare()(left, right) && !domain_compare()(right, left);}
-};
-
-}} // namespace itl boost
-
-#endif
-

Modified: sandbox/itl/boost/itl/detail/element_comparer.hpp
==============================================================================
--- sandbox/itl/boost/itl/detail/element_comparer.hpp (original)
+++ sandbox/itl/boost/itl/detail/element_comparer.hpp 2010-09-29 16:03:57 EDT (Wed, 29 Sep 2010)
@@ -12,7 +12,6 @@
 #include <boost/itl/type_traits/is_map.hpp>
 #include <boost/itl/detail/notate.hpp>
 #include <boost/itl/type_traits/neutron.hpp>
-#include <boost/itl/interval.hpp>
 
 namespace boost{namespace itl
 {

Modified: sandbox/itl/boost/itl/detail/element_iterator.hpp
==============================================================================
--- sandbox/itl/boost/itl/detail/element_iterator.hpp (original)
+++ sandbox/itl/boost/itl/detail/element_iterator.hpp 2010-09-29 16:03:57 EDT (Wed, 29 Sep 2010)
@@ -164,11 +164,12 @@
 {
     typedef segment_adapter type;
     typedef ITL_INTERVAL_TYPE(Interval,DomainT,Compare) interval_type;
- typedef typename interval_type::difference_type domain_difference_type;
     typedef DomainT domain_type;
     typedef std::pair<DomainT, CodomainT> element_type;
     typedef CodomainT codomain_type;
     typedef mapped_reference<DomainT, CodomainT> transit_type;
+ typedef typename difference_type_of<interval_traits<interval_type> >::type
+ domain_difference_type;
 
     static domain_type first (const SegmentIteratorT& leaper){ return leaper->first.first(); }
     static domain_type last (const SegmentIteratorT& leaper){ return leaper->first.last(); }
@@ -188,14 +189,15 @@
 template<class SegmentIteratorT, ITL_INTERVAL(ITL_COMPARE) Interval>
 struct segment_adapter
 {
- typedef segment_adapter type;
+ typedef segment_adapter type;
     typedef ITL_INTERVAL_TYPE(Interval,DomainT,Compare) segment_type;
- typedef segment_type interval_type;
- typedef typename interval_type::difference_type domain_difference_type;
- typedef typename interval_type::domain_type domain_type;
- typedef domain_type codomain_type;
- typedef domain_type element_type;
- typedef domain_type& transit_type;
+ typedef segment_type interval_type;
+ typedef typename interval_type::domain_type domain_type;
+ typedef domain_type codomain_type;
+ typedef domain_type element_type;
+ typedef domain_type& transit_type;
+ typedef typename difference_type_of<interval_traits<interval_type> >::type
+ domain_difference_type;
 
     static domain_type first (const SegmentIteratorT& leaper){ return leaper->first(); }
     static domain_type last (const SegmentIteratorT& leaper){ return leaper->last(); }
@@ -213,13 +215,14 @@
 template < class SegmentIteratorT, class CodomainT, ITL_INTERVAL(ITL_COMPARE) Interval >
 struct segment_adapter<SegmentIteratorT, std::pair<ITL_INTERVAL_TYPE(Interval,DomainT,Compare)const, CodomainT> >
 {
- typedef segment_adapter type;
- typedef ITL_INTERVAL_TYPE(Interval,DomainT,Compare) interval_type;
- typedef typename interval_type::domain_type domain_type;
- typedef typename interval_type::difference_type domain_difference_type;
- typedef CodomainT codomain_type;
- typedef std::pair<domain_type, codomain_type> element_type;
- typedef mapped_reference<domain_type, CodomainT> transit_type;
+ typedef segment_adapter type;
+ typedef ITL_INTERVAL_TYPE(Interval,DomainT,Compare) interval_type;
+ typedef typename interval_type::domain_type domain_type;
+ typedef CodomainT codomain_type;
+ typedef std::pair<domain_type, codomain_type> element_type;
+ typedef mapped_reference<domain_type, CodomainT> transit_type;
+ typedef typename difference_type_of<interval_traits<interval_type> >::type
+ domain_difference_type;
 
     static domain_type first (const SegmentIteratorT& leaper){ return leaper->first.first(); }
     static domain_type last (const SegmentIteratorT& leaper){ return leaper->first.last(); }
@@ -246,16 +249,17 @@
>
 {
 public:
- typedef element_iterator type;
+ typedef element_iterator type;
     typedef SegmentIteratorT segment_iterator;
     typedef typename SegmentIteratorT::value_type segment_type;
     typedef typename first_element<segment_type>::type interval_type;
- typedef typename interval_type::difference_type domain_difference_type;
     typedef typename elemental<segment_type>::type element_type;
     typedef typename elemental<segment_type>::domain_type domain_type;
     typedef typename elemental<segment_type>::codomain_type codomain_type;
     typedef typename elemental<segment_type>::transit_type transit_type;
     typedef transit_type value_type;
+ typedef typename difference_type_of<interval_traits<interval_type> >::type
+ domain_difference_type;
 
 private:
     typedef typename segment_adapter<segment_iterator,segment_type>::type adapt;

Added: sandbox/itl/boost/itl/detail/exclusive_less_than.hpp
==============================================================================
--- (empty file)
+++ sandbox/itl/boost/itl/detail/exclusive_less_than.hpp 2010-09-29 16:03:57 EDT (Wed, 29 Sep 2010)
@@ -0,0 +1,31 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2010-2010: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#ifndef BOOST_ITL_DETAIL_EXCLUSIVE_LESS_THAN_HPP_JOFA_100929
+#define BOOST_ITL_DETAIL_EXCLUSIVE_LESS_THAN_HPP_JOFA_100929
+
+#include <boost/itl/concept/interval.hpp>
+
+namespace boost{ namespace itl
+{
+
+/// Comparison functor on intervals implementing an overlap free less
+template <class IntervalT>
+struct exclusive_less_than
+{
+ /** Operator <tt>operator()</tt> implements a strict weak ordering on intervals. */
+ bool operator()(const IntervalT& left, const IntervalT& right)const
+ {
+ return itl::exclusive_less(left, right);
+ }
+};
+
+}} // namespace boost itl
+
+#endif
+
+

Modified: sandbox/itl/boost/itl/detail/interval_map_algo.hpp
==============================================================================
--- sandbox/itl/boost/itl/detail/interval_map_algo.hpp (original)
+++ sandbox/itl/boost/itl/detail/interval_map_algo.hpp 2010-09-29 16:03:57 EDT (Wed, 29 Sep 2010)
@@ -16,7 +16,6 @@
 #include <boost/itl/detail/notate.hpp>
 #include <boost/itl/detail/relation_state.hpp>
 #include <boost/itl/type_traits/neutron.hpp>
-#include <boost/itl/interval.hpp>
 #include <boost/itl/interval_combining_style.hpp>
 #include <boost/itl/detail/element_comparer.hpp>
 #include <boost/itl/detail/interval_subset_comparer.hpp>
@@ -41,10 +40,10 @@
     ++next_;
 
     const typename IntervalMapT::codomain_type& co_value
- = itl::co_value<IntervalMapT>(first);
+ = itl::co_value<IntervalMapT>(first);
     while(it_ != past)
     {
- if(itl::co_value<IntervalMapT>(next_) != co_value)
+ if(itl::co_value<IntervalMapT>(next_) != co_value)
             return false;
         if(!itl::touches(key_value<IntervalMapT>(it_++),
                          key_value<IntervalMapT>(next_++)))

Modified: sandbox/itl/boost/itl/detail/interval_morphism.hpp
==============================================================================
--- sandbox/itl/boost/itl/detail/interval_morphism.hpp (original)
+++ sandbox/itl/boost/itl/detail/interval_morphism.hpp 2010-09-29 16:03:57 EDT (Wed, 29 Sep 2010)
@@ -23,8 +23,8 @@
         {
             ITL_const_FORALL(typename IntervalContainerT, itv_, src)
             {
- const typename IntervalContainerT::key_type& itv = itl::key_value<IntervalContainerT>(itv_);
- typename IntervalContainerT::codomain_type coval = itl::co_value<IntervalContainerT>(itv_);
+ const typename IntervalContainerT::key_type& itv = itl::key_value<IntervalContainerT>(itv_);
+ typename IntervalContainerT::codomain_type coval = itl::co_value<IntervalContainerT>(itv_);
 
                 for(typename IntervalContainerT::domain_type element = first(itv); element <= last(itv); ++element)
                     insert(result, itl::make_value<ElementContainerT>(element, coval));
@@ -34,7 +34,7 @@
         template <typename IntervalContainerT, typename ElementContainerT>
         void cluster(IntervalContainerT& result, const ElementContainerT& src)
         {
- typedef typename IntervalContainerT::key_type key_type;
+ typedef typename IntervalContainerT::key_type key_type;
             ITL_const_FORALL(typename ElementContainerT, element_, src)
             {
                 const typename ElementContainerT::key_type& key = key_value<ElementContainerT>(element_);
@@ -67,7 +67,7 @@
         {
             void operator()(JointType& joint, SplitType& split)
             {
- itl::join(split);
+ itl::join(split);
                 ITL_FORALL(typename SplitType, split_, split)
                     joint.insert(*split_);
             }
@@ -78,7 +78,7 @@
         {
             void operator()(AbsorberType& absorber, EnricherType& enricher)
             {
- itl::absorb_neutrons(enricher);
+ itl::absorb_neutrons(enricher);
                 ITL_FORALL(typename EnricherType, enricher_, enricher)
                     absorber.insert(*enricher_);
             }

Modified: sandbox/itl/boost/itl/detail/interval_set_algo.hpp
==============================================================================
--- sandbox/itl/boost/itl/detail/interval_set_algo.hpp (original)
+++ sandbox/itl/boost/itl/detail/interval_set_algo.hpp 2010-09-29 16:03:57 EDT (Wed, 29 Sep 2010)
@@ -16,7 +16,6 @@
 #include <boost/itl/type_traits/is_combinable.hpp>
 #include <boost/itl/concept/set_value.hpp>
 #include <boost/itl/concept/map_value.hpp>
-#include <boost/itl/interval.hpp>
 #include <boost/itl/interval_combining_style.hpp>
 #include <boost/itl/detail/element_comparer.hpp>
 #include <boost/itl/detail/interval_subset_comparer.hpp>
@@ -25,54 +24,6 @@
 namespace boost{namespace itl
 {
 
-template <class IntervalContainerT>
-typename IntervalContainerT::size_type continuous_cardinality(const IntervalContainerT& object)
-{
- typedef typename IntervalContainerT::size_type size_type;
- typedef typename IntervalContainerT::interval_type interval_type;
-
- size_type size = neutron<size_type>::value();
- size_type interval_size;
- ITL_const_FORALL(typename IntervalContainerT, it, object)
- {
- interval_size = itl::cardinality(key_value<IntervalContainerT>(it));
- if(interval_size == infinity<size_type>::value())
- return interval_size;
- else
- size += interval_size;
- }
- return size;
-}
-
-template <class IntervalContainerT>
-typename IntervalContainerT::size_type discrete_cardinality(const IntervalContainerT& object)
-{
- typedef typename IntervalContainerT::size_type size_type;
- typedef typename IntervalContainerT::interval_type interval_type;
-
- size_type size = neutron<size_type>::value();
- ITL_const_FORALL(typename IntervalContainerT, it, object)
- size += discrete_interval_<interval_type>::cardinality(key_value<IntervalContainerT>(it));
- return size;
-}
-
-struct continuous_interval_container
-{
- template<class IntervalContainerT>
- static typename IntervalContainerT::size_type
- cardinality(const IntervalContainerT& cont)
- { return continuous_cardinality(cont); }
-};
-
-struct discrete_interval_container
-{
- template<class IntervalContainerT>
- static typename IntervalContainerT::size_type
- cardinality(const IntervalContainerT& cont)
- { return discrete_cardinality(cont); }
-};
-
-
 namespace Interval_Set
 {
 
@@ -284,7 +235,7 @@
 {
     typedef typename Type::interval_type interval_type;
     interval_type right_interval = key_value<Type>(right_);
- ((typename Type::base_type&)object).erase(right_); //JODO
+ ((typename Type::base_type&)object).erase(right_); //JODO
     const_cast<interval_type&>(key_value<Type>(left_))
         = hull(key_value<Type>(left_), right_interval);
 }
@@ -430,14 +381,14 @@
     inline static iterator add_over
         (Type& object, const interval_type& addend, iterator last_)
     {
- iterator joined_ = join_under(object, addend, last_);
+ iterator joined_ = join_under(object, addend, last_);
         return join_neighbours(object, joined_);
     }
 
     inline static iterator add_over
         (Type& object, const interval_type& addend)
     {
- iterator joined_ = join_under(object, addend);
+ iterator joined_ = join_under(object, addend);
         return join_neighbours(object, joined_);
     }
 };

Modified: sandbox/itl/boost/itl/detail/interval_subset_comparer.hpp
==============================================================================
--- sandbox/itl/boost/itl/detail/interval_subset_comparer.hpp (original)
+++ sandbox/itl/boost/itl/detail/interval_subset_comparer.hpp 2010-09-29 16:03:57 EDT (Wed, 29 Sep 2010)
@@ -15,7 +15,6 @@
 #include <boost/itl/type_traits/is_concept_equivalent.hpp>
 #include <boost/itl/type_traits/is_interval_container.hpp>
 #include <boost/itl/type_traits/is_set.hpp>
-#include <boost/itl/interval.hpp>
 #include <boost/itl/concept/interval_set_value.hpp>
 
 namespace boost{namespace itl

Modified: sandbox/itl/boost/itl/detail/map_algo.hpp
==============================================================================
--- sandbox/itl/boost/itl/detail/map_algo.hpp (original)
+++ sandbox/itl/boost/itl/detail/map_algo.hpp 2010-09-29 16:03:57 EDT (Wed, 29 Sep 2010)
@@ -27,14 +27,14 @@
 template <class ObjectT, class CoObjectT>
 bool intersects(const ObjectT& left, const CoObjectT& right)
 {
- typedef typename CoObjectT::const_iterator co_iterator;
+ typedef typename CoObjectT::const_iterator co_iterator;
     co_iterator right_common_lower_, right_common_upper_;
     if(!Set::common_range(right_common_lower_, right_common_upper_, right, left))
         return false;
 
     co_iterator right_ = right_common_lower_;
     while(right_ != right_common_upper_)
- if(itl::intersects(left, key_value<CoObjectT>(right_++)))
+ if(itl::intersects(left, key_value<CoObjectT>(right_++)))
             return true;
 
     return false;

Modified: sandbox/itl/boost/itl/detail/set_algo.hpp
==============================================================================
--- sandbox/itl/boost/itl/detail/set_algo.hpp (original)
+++ sandbox/itl/boost/itl/detail/set_algo.hpp 2010-09-29 16:03:57 EDT (Wed, 29 Sep 2010)
@@ -33,13 +33,13 @@
     // lwb and upb are iterators of x1 marking the lower and upper bound of
     // the common range of x1 and x2.
     typedef typename ConstObjectT::const_iterator ConstObject_iterator;
- // ObjectT may be const or non const.
- typedef typename remove_const<ObjectT>::type PureObjectT;
+ // ObjectT may be const or non const.
+ typedef typename remove_const<ObjectT>::type PureObjectT;
 
     lwb = x1.end();
     upb = x1.end();
 
- if(itl::is_empty(x1) || itl::is_empty(x2))
+ if(itl::is_empty(x1) || itl::is_empty(x2))
         return false;
 
     IteratorT x1_fst_ = x1.begin();
@@ -50,10 +50,10 @@
 
     typename ObjectT::key_compare key_less;
     if(key_less(itl::key_value< PureObjectT>(x1_lst_),
- itl::key_value<ConstObjectT>(x2_fst_))) // {x1} {x2}
+ itl::key_value<ConstObjectT>(x2_fst_))) // {x1} {x2}
         return false;
- if(key_less(itl::key_value<ConstObjectT>(x2_lst_),
- itl::key_value< PureObjectT>(x1_fst_))) // {x2} {x1}
+ if(key_less(itl::key_value<ConstObjectT>(x2_lst_),
+ itl::key_value< PureObjectT>(x1_fst_))) // {x2} {x1}
         return false;
 
     // We do have a common range

Modified: sandbox/itl/boost/itl/detail/subset_comparer.hpp
==============================================================================
--- sandbox/itl/boost/itl/detail/subset_comparer.hpp (original)
+++ sandbox/itl/boost/itl/detail/subset_comparer.hpp 2010-09-29 16:03:57 EDT (Wed, 29 Sep 2010)
@@ -15,7 +15,6 @@
 #include <boost/itl/type_traits/neutron.hpp>
 #include <boost/itl/type_traits/is_concept_equivalent.hpp>
 #include <boost/itl/type_traits/is_element_container.hpp>
-#include <boost/itl/interval.hpp>
 #include <boost/itl/concept/interval_set_value.hpp>
 #include <boost/itl/concept/map_value.hpp>
 

Modified: sandbox/itl/boost/itl/discrete_interval.hpp
==============================================================================
--- sandbox/itl/boost/itl/discrete_interval.hpp (original)
+++ sandbox/itl/boost/itl/discrete_interval.hpp 2010-09-29 16:03:57 EDT (Wed, 29 Sep 2010)
@@ -8,13 +8,14 @@
 #ifndef BOOST_ITL_DISCRETE_INTERVAL_HPP_JOFA_100403
 #define BOOST_ITL_DISCRETE_INTERVAL_HPP_JOFA_100403
 
+#include <functional>
 #include <boost/static_assert.hpp>
+#include <boost/concept/assert.hpp>
 #include <boost/itl/type_traits/succ_pred.hpp>
 #include <boost/itl/type_traits/value_size.hpp>
 #include <boost/itl/type_traits/type_to_string.hpp>
 #include <boost/itl/type_traits/is_continuous.hpp>
 #include <boost/itl/type_traits/is_discrete_interval.hpp>
-#include <boost/itl/detail/base_interval.hpp>
 #include <boost/itl/interval_bounds.hpp>
 #include <boost/itl/concept/interval.hpp>
 
@@ -23,7 +24,7 @@
 
 template <class DomainT,
           ITL_COMPARE Compare = ITL_COMPARE_INSTANCE(std::less, DomainT)>
-class discrete_interval : public base_interval<DomainT,Compare>
+class discrete_interval
 {
 public:
     typedef discrete_interval<DomainT,Compare> type;

Modified: sandbox/itl/boost/itl/dynamic_interval_traits.hpp
==============================================================================
--- sandbox/itl/boost/itl/dynamic_interval_traits.hpp (original)
+++ sandbox/itl/boost/itl/dynamic_interval_traits.hpp 2010-09-29 16:03:57 EDT (Wed, 29 Sep 2010)
@@ -23,7 +23,6 @@
 {
     typedef typename Type::domain_type domain_type;
     typedef typename Type::domain_compare domain_compare;
- typedef typename boost::call_traits<domain_type>::param_type domain_param;
 
     static Type construct(const domain_type& lo, const domain_type& up, interval_bounds bounds);
     static Type construct_bounded(const bounded_value<domain_type>& lo,

Modified: sandbox/itl/boost/itl/interval.hpp
==============================================================================
--- sandbox/itl/boost/itl/interval.hpp (original)
+++ sandbox/itl/boost/itl/interval.hpp 2010-09-29 16:03:57 EDT (Wed, 29 Sep 2010)
@@ -14,6 +14,7 @@
 #include <limits>
 #include <string>
 #include <boost/assert.hpp>
+#include <boost/call_traits.hpp>
 #include <boost/static_assert.hpp>
 #include <boost/concept_check.hpp>
 #include <boost/next_prior.hpp>
@@ -22,7 +23,7 @@
 #include <boost/mpl/assert.hpp>
 #include <boost/itl/detail/notate.hpp>
 #include <boost/itl/detail/design_config.hpp>
-#include <boost/itl/detail/base_interval.hpp>
+#include <boost/itl/detail/exclusive_less_than.hpp>
 #include <boost/itl/type_traits/neutron.hpp>
 #include <boost/itl/type_traits/unon.hpp>
 #include <boost/itl/type_traits/infinity.hpp>
@@ -89,7 +90,7 @@
 
 /** \brief A class template for intervals */
 template <class DomainT, ITL_COMPARE Compare = ITL_COMPARE_INSTANCE(std::less, DomainT)>
-class interval : public base_interval<DomainT,Compare>
+class interval
 {
 public:
     //==========================================================================
@@ -1041,14 +1042,6 @@
 { return !(lhs < rhs); }
 
 
-/// Comparison functor on intervals implementing an overlap free less
-template <class IntervalT>
-struct exclusive_less_than {
- /** Operator <tt>operator()</tt> implements a strict weak ordering on intervals. */
- bool operator()(const IntervalT& left, const IntervalT& right)const
- { return exclusive_less(left, right); }
-};
-
 /** Returns true if the intersection of \c left and \c right is not empty. */
 template <class DomainT, ITL_COMPARE Compare>
 inline bool intersects(const itl::interval<DomainT,Compare>& left,

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 2010-09-29 16:03:57 EDT (Wed, 29 Sep 2010)
@@ -1349,10 +1349,6 @@
 
 
 
-#ifdef BOOST_MSVC
-#pragma warning(pop)
-#endif
-
 }} // namespace itl boost
 
 #endif

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 2010-09-29 16:03:57 EDT (Wed, 29 Sep 2010)
@@ -10,15 +10,17 @@
 #define BOOST_ITL_INTERVAL_BASE_SET_H_JOFA_990223
 
 #include <limits>
+#include <boost/next_prior.hpp>
 #include <boost/itl/type_traits/interval_type_default.hpp>
+#include <boost/itl/type_traits/infinity.hpp>
 #include <boost/itl/type_traits/is_interval_joiner.hpp>
 #include <boost/itl/type_traits/is_interval_separator.hpp>
 #include <boost/itl/type_traits/is_interval_splitter.hpp>
 #include <boost/itl/detail/interval_set_algo.hpp>
-#include <boost/itl/set.hpp>
-#include <boost/itl/interval.hpp>
+#include <boost/itl/detail/exclusive_less_than.hpp>
 #include <boost/itl/rightopen_interval.hpp>
 #include <boost/itl/continuous_interval.hpp>
+#include <boost/itl/set.hpp>
 #include <boost/itl/detail/notate.hpp>
 #include <boost/itl/detail/element_iterator.hpp>
 
@@ -40,7 +42,19 @@
 interval_count(const Type&);
 
 template<class Type>
-typename enable_if<is_interval_container<Type>, typename Type::size_type>::type
+typename enable_if
+< mpl::and_< is_interval_container<Type>
+ , is_discrete<typename Type::domain_type> >
+, typename Type::size_type
+>::type
+cardinality(const Type&);
+
+template<class Type>
+typename enable_if
+< mpl::and_< is_interval_container<Type>
+ , mpl::not_<is_discrete<typename Type::domain_type> > >
+, typename Type::size_type
+>::type
 cardinality(const Type&);
 
 template<class Type>
@@ -148,7 +162,6 @@
     //--------------------------------------------------------------------------
     /// The domain type of the set
     typedef DomainT domain_type;
- typedef typename boost::call_traits<DomainT>::param_type domain_param;
     /// The codomaintype is the same as domain_type
     typedef DomainT codomain_type;
 

Modified: sandbox/itl/boost/itl/interval_map.hpp
==============================================================================
--- sandbox/itl/boost/itl/interval_map.hpp (original)
+++ sandbox/itl/boost/itl/interval_map.hpp 2010-09-29 16:03:57 EDT (Wed, 29 Sep 2010)
@@ -59,6 +59,7 @@
     typedef typename base_type::interval_mapping_type interval_mapping_type;
     typedef typename base_type::ImplMapT ImplMapT;
 
+ typedef typename base_type::size_type size_type;
     typedef typename base_type::codomain_combine codomain_combine;
 
     typedef interval_set<DomainT,Compare,Interval,Alloc> interval_set_type;

Modified: sandbox/itl/boost/itl/interval_traits.hpp
==============================================================================
--- sandbox/itl/boost/itl/interval_traits.hpp (original)
+++ sandbox/itl/boost/itl/interval_traits.hpp 2010-09-29 16:03:57 EDT (Wed, 29 Sep 2010)
@@ -8,18 +8,28 @@
 #ifndef BOOST_ITL_INTERVAL_TRAITS_HPP_JOFA_100926
 #define BOOST_ITL_INTERVAL_TRAITS_HPP_JOFA_100926
 
+#include <boost/itl/type_traits/domain_type_of.hpp>
+#include <boost/itl/type_traits/difference_type_of.hpp>
+#include <boost/itl/type_traits/size_type_of.hpp>
 
 namespace boost{ namespace itl
 {
 
+template<class Type> struct interval_traits;
+
+template<class Type>
+struct domain_type_of<interval_traits<Type> >
+{
+ typedef typename interval_traits<Type>::domain_type type;
+};
+
 //------------------------------------------------------------------------------
 //- Adapter class
 //------------------------------------------------------------------------------
-template<class Type>
-struct interval_traits
+template<class Type> struct interval_traits
 {
- typedef typename Type::domain_type domain_type;
- typedef typename Type::domain_compare domain_compare;
+ typedef interval_traits type;
+ typedef typename domain_type_of<Type>::type domain_type;
 
     static Type construct(const domain_type& lo, const domain_type& up);
 
@@ -27,6 +37,19 @@
     static domain_type lower(const Type& inter_val);
 };
 
+template<class Type>
+struct difference_type_of<interval_traits<Type> >
+{
+ typedef typename interval_traits<Type>::domain_type domain_type;
+ typedef typename difference_type_of<domain_type>::type type;
+};
+
+template<class Type>
+struct size_type_of<interval_traits<Type> >
+{
+ typedef typename interval_traits<Type>::domain_type domain_type;
+ typedef typename size_type_of<domain_type>::type type;
+};
 
 }} // namespace boost itl
 

Modified: sandbox/itl/boost/itl/map.hpp
==============================================================================
--- sandbox/itl/boost/itl/map.hpp (original)
+++ sandbox/itl/boost/itl/map.hpp 2010-09-29 16:03:57 EDT (Wed, 29 Sep 2010)
@@ -333,13 +333,6 @@
             ::add_intersection(section, *this, key_value_pair);
     }
 
- /** Returns true, if there is an intersection of \c operand and \c *this map. */
- //CL template<class OperandT>
- //bool intersects(const OperandT& operand)const
- //{
- // return itl::intersects(*this, operand);
- //}
-
     //==========================================================================
     //= Symmetric difference
     //==========================================================================
@@ -438,8 +431,8 @@
     template<class Type>
     struct on_codomain_model<Type, false, false>
     { // !codomain_is_set, !absorbs_neutrons
- static void subtract(Type& object, typename Type::iterator it_,
- const typename Type::codomain_type& )
+ static void subtract(Type&, typename Type::iterator it_,
+ const typename Type::codomain_type& )
         { it_->second = neutron<typename Type::codomain_type>::value(); }
     };
 

Modified: sandbox/itl/boost/itl/rightopen_interval.hpp
==============================================================================
--- sandbox/itl/boost/itl/rightopen_interval.hpp (original)
+++ sandbox/itl/boost/itl/rightopen_interval.hpp 2010-09-29 16:03:57 EDT (Wed, 29 Sep 2010)
@@ -8,6 +8,8 @@
 #ifndef BOOST_ITL_RIGHTOPEN_INTERVAL_HPP_JOFA_100323
 #define BOOST_ITL_RIGHTOPEN_INTERVAL_HPP_JOFA_100323
 
+#include <functional>
+#include <boost/concept/assert.hpp>
 #include <boost/itl/type_traits/value_size.hpp>
 #include <boost/itl/type_traits/type_to_string.hpp>
 #include <boost/itl/interval_bounds.hpp> //JODO CL rightopen_interval ought to be independent on this,
@@ -15,7 +17,6 @@
                                          //dependencies here. There's also that point on generation.
                                          //Two partitions of interval_functions
                                          // (dependen on i_b ( independent on i_b ))
-#include <boost/itl/detail/base_interval.hpp>
 #include <boost/itl/concept/interval.hpp>
 
 namespace boost{namespace itl
@@ -23,7 +24,7 @@
 
 template <class DomainT,
           ITL_COMPARE Compare = ITL_COMPARE_INSTANCE(std::less, DomainT)>
-class rightopen_interval : public base_interval<DomainT,Compare>
+class rightopen_interval
 {
 public:
     typedef rightopen_interval<DomainT,Compare> type;

Modified: sandbox/itl/boost/itl/set.hpp
==============================================================================
--- sandbox/itl/boost/itl/set.hpp (original)
+++ sandbox/itl/boost/itl/set.hpp 2010-09-29 16:03:57 EDT (Wed, 29 Sep 2010)
@@ -19,7 +19,7 @@
 #endif
 
 #include <string>
-#include <boost/call_traits.hpp>
+//CL #include <boost/call_traits.hpp>
 #include <boost/itl/detail/design_config.hpp>
 #include <boost/itl/detail/concept_check.hpp>
 #include <boost/itl/type_traits/to_string.hpp>
@@ -56,7 +56,6 @@
 
 public:
     typedef DomainT domain_type;
- typedef typename boost::call_traits<DomainT>::param_type domain_param;
     typedef DomainT codomain_type;
     typedef DomainT element_type;
     typedef DomainT key_type;
@@ -192,22 +191,8 @@
     { return itl::subtract(*this, element); }
 
     //==========================================================================
- //= Intersection, symmetric difference
+ //= Symmetric difference
     //==========================================================================
- /** Add \c element to \c section, if \c element is in \c *this set */
- //CL . . . void add_intersection(set& section, const element_type& element)const
- //{ itl::add_intersection(section, *this, element); }
-
- /** The intersection of set \c sectant with \c *this set is added
- to \c section. */
- //void add_intersection(set& section, const set& sectant)const
- //{ itl::add_intersection(section, *this, sectant); }
-
- /** Returns true, if there is an intersection of \c element and \c *this set.
- Functions \c intersects and \c contains are identical on arguments
- of type \c element_type. Complexity: Logarithmic in container size. */
- //bool intersects(const element_type& element)const { return contains(element); }
-
     /** If \c *this set contains \c element it is erased, otherwise it is added. */
     set& flip(const element_type& element)
     { return itl::flip(*this, element); }

Modified: sandbox/itl/boost/itl/type_traits/codomain_type_of.hpp
==============================================================================
--- sandbox/itl/boost/itl/type_traits/codomain_type_of.hpp (original)
+++ sandbox/itl/boost/itl/type_traits/codomain_type_of.hpp 2010-09-29 16:03:57 EDT (Wed, 29 Sep 2010)
@@ -25,25 +25,25 @@
     {};
 
     template <class Type, bool has_codomain_type>
- struct get_codomain_type;
+ struct get_codomain_type;
 
     template <class Type>
- struct get_codomain_type<Type, false>
+ struct get_codomain_type<Type, false>
     {
- typedef no_type type;
+ typedef no_type type;
     };
 
     template <class Type>
- struct get_codomain_type<Type, true>
+ struct get_codomain_type<Type, true>
     {
- typedef typename Type::codomain_type type;
+ typedef typename Type::codomain_type type;
     };
 
     template <class Type>
- struct codomain_type_of
+ struct codomain_type_of
     {
- typedef typename
- get_codomain_type<Type, has_codomain_type<Type>::value>::type type;
+ typedef typename
+ get_codomain_type<Type, has_codomain_type<Type>::value>::type type;
     };
 
 }} // namespace boost itl

Modified: sandbox/itl/boost/itl/type_traits/domain_type_of.hpp
==============================================================================
--- sandbox/itl/boost/itl/type_traits/domain_type_of.hpp (original)
+++ sandbox/itl/boost/itl/type_traits/domain_type_of.hpp 2010-09-29 16:03:57 EDT (Wed, 29 Sep 2010)
@@ -25,25 +25,25 @@
     {};
 
     template <class Type, bool has_domain_type>
- struct get_domain_type;
+ struct get_domain_type;
 
     template <class Type>
- struct get_domain_type<Type, false>
+ struct get_domain_type<Type, false>
     {
- typedef no_type type;
+ typedef no_type type;
     };
 
     template <class Type>
- struct get_domain_type<Type, true>
+ struct get_domain_type<Type, true>
     {
- typedef typename Type::domain_type type;
+ typedef typename Type::domain_type type;
     };
 
     template <class Type>
- struct domain_type_of
+ struct domain_type_of
     {
- typedef typename
- get_domain_type<Type, has_domain_type<Type>::value>::type type;
+ typedef typename
+ get_domain_type<Type, has_domain_type<Type>::value>::type type;
     };
 
 }} // namespace boost itl

Modified: sandbox/itl/boost/itl/type_traits/element_type_of.hpp
==============================================================================
--- sandbox/itl/boost/itl/type_traits/element_type_of.hpp (original)
+++ sandbox/itl/boost/itl/type_traits/element_type_of.hpp 2010-09-29 16:03:57 EDT (Wed, 29 Sep 2010)
@@ -25,25 +25,25 @@
     {};
 
     template <class Type, bool has_element_type>
- struct get_element_type;
+ struct get_element_type;
 
     template <class Type>
- struct get_element_type<Type, false>
+ struct get_element_type<Type, false>
     {
- typedef no_type type;
+ typedef no_type type;
     };
 
     template <class Type>
- struct get_element_type<Type, true>
+ struct get_element_type<Type, true>
     {
- typedef typename Type::element_type type;
+ typedef typename Type::element_type type;
     };
 
     template <class Type>
- struct element_type_of
+ struct element_type_of
     {
- typedef typename
- get_element_type<Type, has_element_type<Type>::value>::type type;
+ typedef typename
+ get_element_type<Type, has_element_type<Type>::value>::type type;
     };
 
 }} // namespace boost itl

Added: sandbox/itl/boost/itl/type_traits/given.hpp
==============================================================================
--- (empty file)
+++ sandbox/itl/boost/itl/type_traits/given.hpp 2010-09-29 16:03:57 EDT (Wed, 29 Sep 2010)
@@ -0,0 +1,21 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2010-2010: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#ifndef BOOST_ITL_TYPE_TRAITS_GIVEN_HPP_JOFA_100929
+#define BOOST_ITL_TYPE_TRAITS_GIVEN_HPP_JOFA_100929
+
+namespace boost{ namespace itl
+{
+ template<bool fact> struct given;
+ template<> struct given<false>{static bool then(bool) { return true;}};
+ template<> struct given<true> {static bool then(bool fact){ return fact;}};
+
+}} // namespace boost itl
+
+#endif
+
+

Modified: sandbox/itl/boost/itl/type_traits/has_dynamic_bounds.hpp
==============================================================================
--- sandbox/itl/boost/itl/type_traits/has_dynamic_bounds.hpp (original)
+++ sandbox/itl/boost/itl/type_traits/has_dynamic_bounds.hpp 2010-09-29 16:03:57 EDT (Wed, 29 Sep 2010)
@@ -18,7 +18,7 @@
 {
     typedef has_dynamic_bounds<Type> type;
     BOOST_STATIC_CONSTANT(bool,
- value = (interval_bound_type<Type>::value == interval_bounds::dynamic));
+ value = (interval_bound_type<Type>::value == interval_bounds::dynamic));
 };
 
 template <class Type> struct is_dynamic_bounded //JODO rearrange for all those predicates.

Modified: sandbox/itl/boost/itl/type_traits/has_set_semantics.hpp
==============================================================================
--- sandbox/itl/boost/itl/type_traits/has_set_semantics.hpp (original)
+++ sandbox/itl/boost/itl/type_traits/has_set_semantics.hpp 2010-09-29 16:03:57 EDT (Wed, 29 Sep 2010)
@@ -20,12 +20,12 @@
     {
         typedef has_set_semantics<Type> type;
         BOOST_STATIC_CONSTANT(bool,
- value = (mpl::or_< is_set<Type>
- , mpl::and_< is_map<Type>
- , has_set_semantics
- <typename codomain_type_of<Type>::type >
- >
- >::value));
+ value = (mpl::or_< is_set<Type>
+ , mpl::and_< is_map<Type>
+ , has_set_semantics
+ <typename codomain_type_of<Type>::type >
+ >
+ >::value));
     };
 
 }} // namespace boost itl

Modified: sandbox/itl/boost/itl/type_traits/interval_type_of.hpp
==============================================================================
--- sandbox/itl/boost/itl/type_traits/interval_type_of.hpp (original)
+++ sandbox/itl/boost/itl/type_traits/interval_type_of.hpp 2010-09-29 16:03:57 EDT (Wed, 29 Sep 2010)
@@ -25,25 +25,25 @@
     {};
 
     template <class Type, bool has_interval_type>
- struct get_interval_type;
+ struct get_interval_type;
 
     template <class Type>
- struct get_interval_type<Type, false>
+ struct get_interval_type<Type, false>
     {
- typedef no_type type;
+ typedef no_type type;
     };
 
     template <class Type>
- struct get_interval_type<Type, true>
+ struct get_interval_type<Type, true>
     {
- typedef typename Type::interval_type type;
+ typedef typename Type::interval_type type;
     };
 
     template <class Type>
- struct interval_type_of
+ struct interval_type_of
     {
- typedef typename
- get_interval_type<Type, has_interval_type<Type>::value>::type type;
+ typedef typename
+ get_interval_type<Type, has_interval_type<Type>::value>::type type;
     };
 
 }} // namespace boost itl

Modified: sandbox/itl/boost/itl/type_traits/is_assoc_element_container.hpp
==============================================================================
--- sandbox/itl/boost/itl/type_traits/is_assoc_element_container.hpp (original)
+++ sandbox/itl/boost/itl/type_traits/is_assoc_element_container.hpp 2010-09-29 16:03:57 EDT (Wed, 29 Sep 2010)
@@ -21,7 +21,7 @@
     {
         typedef is_assoc_element_container type;
         BOOST_STATIC_CONSTANT(bool, value =
- (mpl::or_<is_element_set<Type>, is_element_map<Type> >::value));
+ (mpl::or_<is_element_set<Type>, is_element_map<Type> >::value));
     };
 
 

Modified: sandbox/itl/boost/itl/type_traits/is_associative_element_container.hpp
==============================================================================
--- sandbox/itl/boost/itl/type_traits/is_associative_element_container.hpp (original)
+++ sandbox/itl/boost/itl/type_traits/is_associative_element_container.hpp 2010-09-29 16:03:57 EDT (Wed, 29 Sep 2010)
@@ -21,7 +21,7 @@
     {
         typedef is_associative_element_container type;
         BOOST_STATIC_CONSTANT(bool, value =
- (mpl::or_<is_element_set<Type>, is_element_map<Type> >::value));
+ (mpl::or_<is_element_set<Type>, is_element_map<Type> >::value));
     };
 
 

Modified: sandbox/itl/boost/itl/type_traits/is_combinable.hpp
==============================================================================
--- sandbox/itl/boost/itl/type_traits/is_combinable.hpp (original)
+++ sandbox/itl/boost/itl/type_traits/is_combinable.hpp 2010-09-29 16:03:57 EDT (Wed, 29 Sep 2010)
@@ -136,21 +136,21 @@
 template<class FragmentT, class Type>
 struct is_fragment_of
 {
- typedef is_fragment_of type;
+ typedef is_fragment_of type;
     BOOST_STATIC_CONSTANT(bool, value = false);
 };
 
 template<class Type>
 struct is_fragment_of<typename Type::element_type, Type>
 {
- typedef is_fragment_of type;
+ typedef is_fragment_of type;
     BOOST_STATIC_CONSTANT(bool, value = true);
 };
 
 template<class Type>
 struct is_fragment_of<typename Type::segment_type, Type>
 {
- typedef is_fragment_of type;
+ typedef is_fragment_of type;
     BOOST_STATIC_CONSTANT(bool, value = true);
 };
 
@@ -160,21 +160,21 @@
 template<class KeyT, class Type>
 struct is_key_of
 {
- typedef is_key_of type;
+ typedef is_key_of type;
     BOOST_STATIC_CONSTANT(bool, value = false);
 };
 
 template<class Type>
 struct is_key_of<typename Type::domain_type, Type>
 {
- typedef is_key_of type;
+ typedef is_key_of type;
     BOOST_STATIC_CONSTANT(bool, value = true);
 };
 
 template<class Type>
 struct is_key_of<typename Type::interval_type, Type>
 {
- typedef is_key_of type;
+ typedef is_key_of type;
     BOOST_STATIC_CONSTANT(bool, value = true);
 };
 

Modified: sandbox/itl/boost/itl/type_traits/is_element_container.hpp
==============================================================================
--- sandbox/itl/boost/itl/type_traits/is_element_container.hpp (original)
+++ sandbox/itl/boost/itl/type_traits/is_element_container.hpp 2010-09-29 16:03:57 EDT (Wed, 29 Sep 2010)
@@ -40,7 +40,7 @@
         typedef is_element_container<Type> type;
         BOOST_STATIC_CONSTANT(bool, value =
             (mpl::or_<is_element_set<Type>, is_element_map<Type> >::value)
- );
+ );
     };
 }} // namespace boost itl
 

Modified: sandbox/itl/boost/itl/type_traits/is_icl_container.hpp
==============================================================================
--- sandbox/itl/boost/itl/type_traits/is_icl_container.hpp (original)
+++ sandbox/itl/boost/itl/type_traits/is_icl_container.hpp 2010-09-29 16:03:57 EDT (Wed, 29 Sep 2010)
@@ -23,7 +23,7 @@
         typedef is_icl_container<Type> type;
         BOOST_STATIC_CONSTANT(bool, value =
             (mpl::or_< is_element_container<Type>
- , is_interval_container<Type> >::value));
+ , is_interval_container<Type> >::value));
     };
 
 }} // namespace boost itl

Modified: sandbox/itl/boost/itl/type_traits/is_key_container_of.hpp
==============================================================================
--- sandbox/itl/boost/itl/type_traits/is_key_container_of.hpp (original)
+++ sandbox/itl/boost/itl/type_traits/is_key_container_of.hpp 2010-09-29 16:03:57 EDT (Wed, 29 Sep 2010)
@@ -19,8 +19,8 @@
     {
         typedef is_strict_key_container_of<KeyT, ObjectT> type;
         BOOST_STATIC_CONSTANT(bool, value =
- (mpl::and_< is_map<ObjectT>
- , is_same<typename ObjectT::key_object_type, KeyT> >::value)
+ (mpl::and_< is_map<ObjectT>
+ , is_same<typename ObjectT::key_object_type, KeyT> >::value)
             );
     };
 
@@ -29,9 +29,9 @@
     {
         typedef is_key_container_of<KeyT, ObjectT> type;
         BOOST_STATIC_CONSTANT(bool, value =
- (mpl::or_< is_strict_key_container_of<KeyT, ObjectT>
- , mpl::and_< is_container<ObjectT> //JODO is_itl_associative_container
- , is_same<ObjectT, KeyT> > >::value)
+ (mpl::or_< is_strict_key_container_of<KeyT, ObjectT>
+ , mpl::and_< is_container<ObjectT> //JODO is_itl_associative_container
+ , is_same<ObjectT, KeyT> > >::value)
             );
     };
 

Modified: sandbox/itl/boost/itl/type_traits/no_type.hpp
==============================================================================
--- sandbox/itl/boost/itl/type_traits/no_type.hpp (original)
+++ sandbox/itl/boost/itl/type_traits/no_type.hpp 2010-09-29 16:03:57 EDT (Wed, 29 Sep 2010)
@@ -10,7 +10,7 @@
 
 namespace boost{ namespace itl
 {
- struct no_type{};
+ struct no_type{};
 
 }} // namespace boost itl
 

Modified: sandbox/itl/boost/itl/type_traits/segment_type_of.hpp
==============================================================================
--- sandbox/itl/boost/itl/type_traits/segment_type_of.hpp (original)
+++ sandbox/itl/boost/itl/type_traits/segment_type_of.hpp 2010-09-29 16:03:57 EDT (Wed, 29 Sep 2010)
@@ -25,25 +25,25 @@
     {};
 
     template <class Type, bool has_segment_type>
- struct get_segment_type;
+ struct get_segment_type;
 
     template <class Type>
- struct get_segment_type<Type, false>
+ struct get_segment_type<Type, false>
     {
- typedef no_type type;
+ typedef no_type type;
     };
 
     template <class Type>
- struct get_segment_type<Type, true>
+ struct get_segment_type<Type, true>
     {
- typedef typename Type::segment_type type;
+ typedef typename Type::segment_type type;
     };
 
     template <class Type>
- struct segment_type_of
+ struct segment_type_of
     {
- typedef typename
- get_segment_type<Type, has_segment_type<Type>::value>::type type;
+ typedef typename
+ get_segment_type<Type, has_segment_type<Type>::value>::type type;
     };
 
 }} // namespace boost itl

Modified: sandbox/itl/boost/itl_xt/detail/bit_element_iterator.hpp
==============================================================================
--- sandbox/itl/boost/itl_xt/detail/bit_element_iterator.hpp (original)
+++ sandbox/itl/boost/itl_xt/detail/bit_element_iterator.hpp 2010-09-29 16:03:57 EDT (Wed, 29 Sep 2010)
@@ -49,7 +49,6 @@
     typedef SegmentIteratorT segment_iterator;
     typedef typename SegmentIteratorT::value_type segment_type;
     typedef typename first_element<segment_type>::type interval_type;
- typedef typename interval_type::difference_type domain_difference_type;
     typedef typename bitwise<segment_type>::bitset_type bitset_type;
     typedef typename bitwise<segment_type>::word_type word_type;
     typedef typename bitwise<segment_type>::domain_type domain_type;
@@ -58,6 +57,8 @@
     typedef element_type value_type;
     typedef element_type key_type;
     typedef element_type data_type;
+ typedef typename difference_type_of<interval_traits<interval_type> >::type
+ domain_difference_type;
 
     BOOST_STATIC_CONSTANT(bit_range_type, digits = bitwise<segment_type>::digits );
     BOOST_STATIC_CONSTANT(bool, is_forward = mpl::not_<is_reverse<SegmentIteratorT> >::value );
@@ -439,8 +440,9 @@
     typedef IteratorT iterator;
     typedef typename iterator::value_type segment_type;
     typedef typename first_element<segment_type>::type interval_type;
- typedef typename interval_type::difference_type difference_type;
     typedef typename bitwise<segment_type>::word_type word_type;
+ typedef typename difference_type_of<interval_traits<interval_type> >::type
+ difference_type;
 
     BOOST_STATIC_CONSTANT(bit_range_type, digits = bitwise<segment_type>::digits );
     BOOST_STATIC_CONSTANT(bit_range_type, before = -2 );
@@ -476,8 +478,9 @@
     typedef IteratorT iterator;
     typedef typename iterator::value_type segment_type;
     typedef typename first_element<segment_type>::type interval_type;
- typedef typename interval_type::difference_type difference_type;
     typedef typename bitwise<segment_type>::word_type word_type;
+ typedef typename difference_type_of<interval_traits<interval_type> >::type
+ difference_type;
 
     BOOST_STATIC_CONSTANT(bit_range_type, digits = bitwise<segment_type>::digits );
     BOOST_STATIC_CONSTANT(bit_range_type, beyond = -2 );

Modified: sandbox/itl/boost/validate/driver/itl_driver.hpp
==============================================================================
--- sandbox/itl/boost/validate/driver/itl_driver.hpp (original)
+++ sandbox/itl/boost/validate/driver/itl_driver.hpp 2010-09-29 16:03:57 EDT (Wed, 29 Sep 2010)
@@ -157,7 +157,7 @@
 
             std::cout << "------------------------------------------------------------------------------" << std::endl;
             // Summary for the current cycle
- double avg_evaluation_time_per_law = avg_evaluation_time/itl::size(_frequencies);
+ double avg_evaluation_time_per_law = avg_evaluation_time/itl::size(_frequencies);
             printf( " %10.3lf%-53s%7ld%7.0lf\n",
                     avg_evaluation_time_per_law, " total avg of atomic evaluation (micro sec)", instance_count, avg_evaluation_time_per_law);
 
@@ -270,7 +270,7 @@
                 return true;
             else if(_required_law_count == 0 || _required_law_validation_count == 0)
                 return false; // If counts are not limited: Run for ever.
- else if(itl::size(_frequencies) < static_cast<size_t>(_required_law_count))
+ else if(itl::size(_frequencies) < static_cast<size_t>(_required_law_count))
                 return false; // Not yet reached all laws
             else
                 // All laws reached. Enough validation cycles for every law?

Modified: sandbox/itl/boost/validate/itl/functors.hpp
==============================================================================
--- sandbox/itl/boost/validate/itl/functors.hpp (original)
+++ sandbox/itl/boost/validate/itl/functors.hpp 2010-09-29 16:03:57 EDT (Wed, 29 Sep 2010)
@@ -71,8 +71,8 @@
     {
         ITL_FUN_CALL(clear, collected);
         ITL_const_FORALL(typename SourceT, item_, items)
- //JODO itl::add(collected, *item_);
- collected.add(*item_);
+ //JODO itl::add(collected, *item_);
+ collected.add(*item_);
     }
 };
 

Modified: sandbox/itl/boost/validate/laws/order.hpp
==============================================================================
--- sandbox/itl/boost/validate/laws/order.hpp (original)
+++ sandbox/itl/boost/validate/laws/order.hpp 2010-09-29 16:03:57 EDT (Wed, 29 Sep 2010)
@@ -115,24 +115,24 @@
         }
 
         bool debug_holds()
- {
+ {
             Type a = this->template getInputValue<operand_a>();
             Type b = this->template getInputValue<operand_b>();
 
- cout << "a = " << a << endl;
- cout << "b = " << b << endl;
+ cout << "a = " << a << endl;
+ cout << "b = " << b << endl;
 
- bool a_R_b = Relation<Type>()(a,b);
- cout << "a<=b == " << a_R_b << endl;
+ bool a_R_b = Relation<Type>()(a,b);
+ cout << "a<=b == " << a_R_b << endl;
 
- bool b_R_a = Relation<Type>()(b,a);
- cout << "b<=a == " << b_R_a << endl;
+ bool b_R_a = Relation<Type>()(b,a);
+ cout << "b<=a == " << b_R_a << endl;
 
- bool a_E_b = Equality<Type>()(a,b);
- cout << "b==a == " << a_E_b << endl;
+ bool a_E_b = Equality<Type>()(a,b);
+ cout << "b==a == " << a_E_b << endl;
 
             return !(Relation<Type>()(a,b) && Relation<Type>()(b,a)) || Equality<Type>()(a,b);
- }
+ }
 
         size_t size()const
         {

Modified: sandbox/itl/libs/itl/example/itvset_shell_/itvset_shell.cpp
==============================================================================
--- sandbox/itl/libs/itl/example/itvset_shell_/itvset_shell.cpp (original)
+++ sandbox/itl/libs/itl/example/itvset_shell_/itvset_shell.cpp 2010-09-29 16:03:57 EDT (Wed, 29 Sep 2010)
@@ -92,7 +92,7 @@
                 break;
             case 'j':
                 {
- itl::join(m1);
+ itl::join(m1);
                     cout << "{" << m1 << "}" << endl;
                 }
                 break;

Modified: sandbox/itl/libs/itl/example/large_bitset_/large_bitset.hpp
==============================================================================
--- sandbox/itl/libs/itl/example/large_bitset_/large_bitset.hpp (original)
+++ sandbox/itl/libs/itl/example/large_bitset_/large_bitset.hpp 2010-09-29 16:03:57 EDT (Wed, 29 Sep 2010)
@@ -113,7 +113,7 @@
     //]
 
     //[large_bitset_demo_functions
- size_t interval_count()const { return _map.interval_count(); }
+ size_t interval_count()const { return itl::interval_count(_map); }
 
     void show_segments()const
     {
@@ -131,7 +131,7 @@
         typename interval_bitmap_type::const_iterator iter = _map.begin();
         while(iter != _map.end())
         {
- element_type fst = itl::first(iter->first), lst = itl::last(iter->first);
+ element_type fst = itl::first(iter->first), lst = itl::last(iter->first);
             for(element_type chunk = fst; chunk <= lst; chunk++)
                 std::cout << iter->second.as_string(off_on) << std::endl;
             ++iter;

Modified: sandbox/itl/libs/itl/example/splititvmap_shell_/splititvmap_shell.cpp
==============================================================================
--- sandbox/itl/libs/itl/example/splititvmap_shell_/splititvmap_shell.cpp (original)
+++ sandbox/itl/libs/itl/example/splititvmap_shell_/splititvmap_shell.cpp 2010-09-29 16:03:57 EDT (Wed, 29 Sep 2010)
@@ -94,7 +94,7 @@
                 break;
             case 'j':
                 {
- itl::join(m1);
+ itl::join(m1);
                     cout << "{" << m1 << "}" << endl;
                 }
                 break;

Modified: sandbox/itl/libs/itl/test/fastest_itl_interval_/fastest_itl_interval.cpp
==============================================================================
--- sandbox/itl/libs/itl/test/fastest_itl_interval_/fastest_itl_interval.cpp (original)
+++ sandbox/itl/libs/itl/test/fastest_itl_interval_/fastest_itl_interval.cpp 2010-09-29 16:03:57 EDT (Wed, 29 Sep 2010)
@@ -14,8 +14,6 @@
 #include "../test_type_lists.hpp"
 #include "../test_value_maker.hpp"
 
-#include <boost/itl/interval.hpp>
-
 using namespace std;
 using namespace boost;
 using namespace unit_test;
@@ -26,8 +24,9 @@
 
 BOOST_AUTO_TEST_CASE
 (fastest_itl_interval_ctor_4_ordered_types)
-{ interval_ctor_4_ordered_types<ordered_type_1>(); }
+{ interval_ctor_4_ordered_types<ordered_type_1, >(); }
 
+/*
 BOOST_AUTO_TEST_CASE
 (fastest_itl_interval_ctor_4_bicremental_types)
 { interval_ctor_4_bicremental_types<bicremental_type_2>(); }
@@ -71,6 +70,7 @@
 BOOST_AUTO_TEST_CASE
 (fastest_itl_interval_subtract_4_bicremental_types)
 { interval_subtract_4_bicremental_types<bicremental_type_5>(); }
+*/
 
 /*JODO
 BOOST_AUTO_TEST_CASE

Modified: sandbox/itl/libs/itl/test/test_calls.hpp
==============================================================================
--- sandbox/itl/libs/itl/test/test_calls.hpp (original)
+++ sandbox/itl/libs/itl/test/test_calls.hpp 2010-09-29 16:03:57 EDT (Wed, 29 Sep 2010)
@@ -25,9 +25,9 @@
 bool contains(const Type& object, const CoType& co_object)
 {
 #ifdef ITL_PURE_CONCEPTUAL
- return object.contains(co_object);
+ return object.contains(co_object);
 #else
- return itl::contains(object, co_object);
+ return itl::contains(object, co_object);
 #endif
 }
 
@@ -35,9 +35,9 @@
 bool within(const Type& object, const CoType& co_object)
 {
 #ifdef ITL_PURE_CONCEPTUAL
- return object.within(co_object);
+ return object.within(co_object);
 #else
- return itl::within(object, co_object);
+ return itl::within(object, co_object);
 #endif
 }
 

Modified: sandbox/itl/libs/itl/test/test_icl_quantifier_shared.hpp
==============================================================================
--- sandbox/itl/libs/itl/test/test_icl_quantifier_shared.hpp (original)
+++ sandbox/itl/libs/itl/test/test_icl_quantifier_shared.hpp 2010-09-29 16:03:57 EDT (Wed, 29 Sep 2010)
@@ -21,46 +21,46 @@
>
 void make_3_icl_maps_and_derivatives_1
                    (itl::map<T,U,Trt>& map_a,
- itl::map<T,U,Trt>& map_b,
- itl::map<T,U,Trt>& map_c,
- std::pair<T,U>& map_pair_a,
- std::pair<T,U>& map_pair_b,
- IntervalMap<T,U,Trt>* aux = 0)
+ itl::map<T,U,Trt>& map_b,
+ itl::map<T,U,Trt>& map_c,
+ std::pair<T,U>& map_pair_a,
+ std::pair<T,U>& map_pair_b,
+ IntervalMap<T,U,Trt>* aux = 0)
 {
     typedef IntervalMap<T,U,Trt> IntervalMapT;
- typedef itl::map<T,U,Trt> MapT;
- aux;
+ typedef itl::map<T,U,Trt> MapT;
+ aux;
 
- map_pair_a = sK_v(5,1);
+ map_pair_a = sK_v(5,1);
     map_pair_b = sK_v(9,1);
 
- add(map_a, sK_v(3,1));
- add(map_a, sK_v(4,1));
- add(map_a, sK_v(5,1));
- add(map_a, sK_v(5,1));
- add(map_a, sK_v(6,1));
- add(map_a, sK_v(7,1));
-
- add(map_b, sK_v(2,1));
- add(map_b, sK_v(8,1));
-
- add(map_c, sK_v(0,2));
- add(map_c, sK_v(1,2));
- add(map_c, sK_v(2,2));
- add(map_c, sK_v(3,2));
- add(map_c, sK_v(4,2));
- add(map_c, sK_v(5,2));
- add(map_c, sK_v(6,2));
- add(map_c, sK_v(7,2));
- add(map_c, sK_v(8,2));
-
- add(map_c, sK_v(3,1));
- add(map_c, sK_v(4,1));
- add(map_c, sK_v(5,1));
- add(map_c, sK_v(6,1));
+ add(map_a, sK_v(3,1));
+ add(map_a, sK_v(4,1));
+ add(map_a, sK_v(5,1));
+ add(map_a, sK_v(5,1));
+ add(map_a, sK_v(6,1));
+ add(map_a, sK_v(7,1));
+
+ add(map_b, sK_v(2,1));
+ add(map_b, sK_v(8,1));
+
+ add(map_c, sK_v(0,2));
+ add(map_c, sK_v(1,2));
+ add(map_c, sK_v(2,2));
+ add(map_c, sK_v(3,2));
+ add(map_c, sK_v(4,2));
+ add(map_c, sK_v(5,2));
+ add(map_c, sK_v(6,2));
+ add(map_c, sK_v(7,2));
+ add(map_c, sK_v(8,2));
+
+ add(map_c, sK_v(3,1));
+ add(map_c, sK_v(4,1));
+ add(map_c, sK_v(5,1));
+ add(map_c, sK_v(6,1));
 
- add(map_c, sK_v(5,1));
- add(map_c, sK_v(6,1));
+ add(map_c, sK_v(5,1));
+ add(map_c, sK_v(6,1));
 }
 
 
@@ -80,11 +80,11 @@
 void icl_quantifier_check_monoid_plus_4_bicremental_types()
 {
     typedef IntervalMap<T,U,Trt> IntervalMapT;
- typedef itl::map<T,U,Trt> MapT;
- IntervalMapT aux;
- MapT map_a, map_b, map_c;
- std::pair<T,U> map_pair_a, map_pair_b;
- make_3_icl_maps_and_derivatives_1(map_a, map_b, map_c, map_pair_a, map_pair_b, &aux);
+ typedef itl::map<T,U,Trt> MapT;
+ IntervalMapT aux;
+ MapT map_a, map_b, map_c;
+ std::pair<T,U> map_pair_a, map_pair_b;
+ make_3_icl_maps_and_derivatives_1(map_a, map_b, map_c, map_pair_a, map_pair_b, &aux);
 
     CHECK_MONOID_INSTANCE_WRT(plus) (map_a, map_b, map_c, map_pair_a, map_pair_b);
     CHECK_MONOID_INSTANCE_WRT(pipe) (map_a, map_b, map_c, map_pair_a, map_pair_b);
@@ -104,11 +104,11 @@
 void icl_quantifier_check_monoid_et_4_bicremental_types()
 {
     typedef IntervalMap<T,U,Trt> IntervalMapT;
- typedef itl::map<T,U,Trt> MapT;
- IntervalMapT aux;
- MapT map_a, map_b, map_c;
- std::pair<T,U> map_pair_a, map_pair_b;
- make_3_icl_maps_and_derivatives_1(map_a, map_b, map_c, map_pair_a, map_pair_b, &aux);
+ typedef itl::map<T,U,Trt> MapT;
+ IntervalMapT aux;
+ MapT map_a, map_b, map_c;
+ std::pair<T,U> map_pair_a, map_pair_b;
+ make_3_icl_maps_and_derivatives_1(map_a, map_b, map_c, map_pair_a, map_pair_b, &aux);
 
     CHECK_MONOID_INSTANCE_WRT(et) (map_a, map_b, map_c, map_pair_a, map_pair_b);
     CHECK_MONOID_INSTANCE_WRT(caret)(map_a, map_b, map_c, map_pair_a, map_pair_b);
@@ -131,11 +131,11 @@
 void icl_quantifier_check_abelian_monoid_plus_4_bicremental_types()
 {
     typedef IntervalMap<T,U,Trt> IntervalMapT;
- typedef itl::map<T,U,Trt> MapT;
- IntervalMapT aux;
- MapT map_a, map_b, map_c;
- std::pair<T,U> map_pair_a, map_pair_b;
- make_3_icl_maps_and_derivatives_1(map_a, map_b, map_c, map_pair_a, map_pair_b, &aux);
+ typedef itl::map<T,U,Trt> MapT;
+ IntervalMapT aux;
+ MapT map_a, map_b, map_c;
+ std::pair<T,U> map_pair_a, map_pair_b;
+ make_3_icl_maps_and_derivatives_1(map_a, map_b, map_c, map_pair_a, map_pair_b, &aux);
 
     CHECK_ABELIAN_MONOID_INSTANCE_WRT(plus) (map_a, map_b, map_c, map_pair_a, map_pair_b);
     CHECK_ABELIAN_MONOID_INSTANCE_WRT(pipe) (map_a, map_b, map_c, map_pair_a, map_pair_b);
@@ -155,11 +155,11 @@
 void icl_quantifier_check_abelian_monoid_et_4_bicremental_types()
 {
     typedef IntervalMap<T,U,Trt> IntervalMapT;
- typedef itl::map<T,U,Trt> MapT;
- IntervalMapT aux;
- MapT map_a, map_b, map_c;
- std::pair<T,U> map_pair_a, map_pair_b;
- make_3_icl_maps_and_derivatives_1(map_a, map_b, map_c, map_pair_a, map_pair_b, &aux);
+ typedef itl::map<T,U,Trt> MapT;
+ IntervalMapT aux;
+ MapT map_a, map_b, map_c;
+ std::pair<T,U> map_pair_a, map_pair_b;
+ make_3_icl_maps_and_derivatives_1(map_a, map_b, map_c, map_pair_a, map_pair_b, &aux);
 
     CHECK_ABELIAN_MONOID_INSTANCE_WRT(et) (map_a, map_b, map_c, map_pair_a, map_pair_b);
     CHECK_ABELIAN_MONOID_INSTANCE_WRT(caret)(map_a, map_b, map_c, map_pair_a, map_pair_b);
@@ -182,11 +182,11 @@
 void icl_quantifier_check_partial_invertive_monoid_plus_4_bicremental_types()
 {
     typedef IntervalMap<T,U,Trt> IntervalMapT;
- typedef itl::map<T,U,Trt> MapT;
- IntervalMapT aux;
- MapT map_a, map_b, map_c;
- std::pair<T,U> map_pair_a, map_pair_b;
- make_3_icl_maps_and_derivatives_1(map_a, map_b, map_c, map_pair_a, map_pair_b, &aux);
+ typedef itl::map<T,U,Trt> MapT;
+ IntervalMapT aux;
+ MapT map_a, map_b, map_c;
+ std::pair<T,U> map_pair_a, map_pair_b;
+ make_3_icl_maps_and_derivatives_1(map_a, map_b, map_c, map_pair_a, map_pair_b, &aux);
 
     CHECK_PARTIAL_INVERTIVE_MONOID_INSTANCE_WRT(plus) (map_a, map_b, map_c, map_pair_a, map_pair_b);
     CHECK_PARTIAL_INVERTIVE_MONOID_INSTANCE_WRT(pipe) (map_a, map_b, map_c, map_pair_a, map_pair_b);
@@ -208,11 +208,11 @@
 void icl_quantifier_check_partial_invertive_monoid_plus_prot_inv_4_bicremental_types()
 {
     typedef IntervalMap<T,U,Trt> IntervalMapT;
- typedef itl::map<T,U,Trt> MapT;
- IntervalMapT aux;
- MapT map_a, map_b, map_c;
- std::pair<T,U> map_pair_a, map_pair_b;
- make_3_icl_maps_and_derivatives_1(map_a, map_b, map_c, map_pair_a, map_pair_b, &aux);
+ typedef itl::map<T,U,Trt> MapT;
+ IntervalMapT aux;
+ MapT map_a, map_b, map_c;
+ std::pair<T,U> map_pair_a, map_pair_b;
+ make_3_icl_maps_and_derivatives_1(map_a, map_b, map_c, map_pair_a, map_pair_b, &aux);
 
     CHECK_ABELIAN_MONOID_INSTANCE_WRT(plus)(map_a, map_b, map_c, map_pair_a, map_pair_b);
     CHECK_ABELIAN_MONOID_INSTANCE_WRT(pipe)(map_a, map_b, map_c, map_pair_a, map_pair_b);
@@ -238,11 +238,11 @@
 void icl_quantifier_check_abelian_group_plus_4_bicremental_types()
 {
     typedef IntervalMap<T,U,Trt> IntervalMapT;
- typedef itl::map<T,U,Trt> MapT;
- IntervalMapT aux;
- MapT map_a, map_b, map_c;
- std::pair<T,U> map_pair_a, map_pair_b;
- make_3_icl_maps_and_derivatives_1(map_a, map_b, map_c, map_pair_a, map_pair_b, &aux);
+ typedef itl::map<T,U,Trt> MapT;
+ IntervalMapT aux;
+ MapT map_a, map_b, map_c;
+ std::pair<T,U> map_pair_a, map_pair_b;
+ make_3_icl_maps_and_derivatives_1(map_a, map_b, map_c, map_pair_a, map_pair_b, &aux);
 
     CHECK_ABELIAN_GROUP_INSTANCE_WRT(plus) (map_a, map_b, map_c, map_pair_a, map_pair_b);
     CHECK_ABELIAN_GROUP_INSTANCE_WRT(pipe) (map_a, map_b, map_c, map_pair_a, map_pair_b);
@@ -267,11 +267,11 @@
     // (1) (IntervalMapT, +) is an abelian group and
     // (2) The inverability law: (0 - x) + x =p= 0 holds.
     typedef IntervalMap<T,U,Trt> IntervalMapT;
- typedef itl::map<T,U,Trt> MapT;
- IntervalMapT aux;
- MapT map_a, map_b, map_c;
- std::pair<T,U> map_pair_a, map_pair_b;
- make_3_icl_maps_and_derivatives_1(map_a, map_b, map_c, map_pair_a, map_pair_b, &aux);
+ typedef itl::map<T,U,Trt> MapT;
+ IntervalMapT aux;
+ MapT map_a, map_b, map_c;
+ std::pair<T,U> map_pair_a, map_pair_b;
+ make_3_icl_maps_and_derivatives_1(map_a, map_b, map_c, map_pair_a, map_pair_b, &aux);
 
     CHECK_ABELIAN_MONOID_INSTANCE_WRT(plus) (map_a, map_b, map_c, map_pair_a, map_pair_b);
     CHECK_ABELIAN_MONOID_INSTANCE_WRT(pipe) (map_a, map_b, map_c, map_pair_a, map_pair_b);
@@ -296,19 +296,19 @@
 void icl_quantifier_check_containedness_4_bicremental_types()
 {
     typedef IntervalMap<T,U,Trt> IntervalMapT;
- typedef itl::map<T,U,Trt> MapT;
- IntervalMapT aux;
- MapT map_a, map_b, map_c;
- std::pair<T,U> map_pair_a, map_pair_b;
- make_3_icl_maps_and_derivatives_1(map_a, map_b, map_c, map_pair_a, map_pair_b, &aux);
+ typedef itl::map<T,U,Trt> MapT;
+ IntervalMapT aux;
+ MapT map_a, map_b, map_c;
+ std::pair<T,U> map_pair_a, map_pair_b;
+ make_3_icl_maps_and_derivatives_1(map_a, map_b, map_c, map_pair_a, map_pair_b, &aux);
 
- check_intersection_containedness(map_a, map_c);
- check_intersection_containedness(map_c, map_pair_a);
+ check_intersection_containedness(map_a, map_c);
+ check_intersection_containedness(map_c, map_pair_a);
 
- check_union_containedness(map_a, map_c);
- check_union_containedness(map_c, map_pair_a);
+ check_union_containedness(map_a, map_c);
+ check_union_containedness(map_c, map_pair_a);
 
- check_domain_containedness(map_a);
+ check_domain_containedness(map_a);
 }
 
 

Modified: sandbox/itl/libs/itl/test/test_interval_map_mixed.hpp
==============================================================================
--- sandbox/itl/libs/itl/test/test_interval_map_mixed.hpp (original)
+++ sandbox/itl/libs/itl/test/test_interval_map_mixed.hpp 2010-09-29 16:03:57 EDT (Wed, 29 Sep 2010)
@@ -228,11 +228,11 @@
 
     split_map.add(IDv(0,2,2)).add(IIv(2,3,1)).add(CDv(3,6,1)).add(CIv(7,9,2));
     join_map = split_map;
- itl::domain(split_set, split_map);
+ itl::domain(split_set, split_map);
     itl::domain(sep_set, split_map);
     itl::domain(join_set, split_map);
 
- iterative_size(split_map);
+ iterative_size(split_map);
     BOOST_CHECK_EQUAL( iterative_size(split_map), 4 );
     BOOST_CHECK_EQUAL( iterative_size(join_map), 3 );
     BOOST_CHECK_EQUAL( iterative_size(split_set), 4 );
@@ -372,7 +372,7 @@
     BOOST_CHECK_EQUAL( itl::contains(join_map, I_D(0,7)), false );
 
     // Map types
- BOOST_CHECK_EQUAL( itl::contains(join_map, K_v(1,2)), true );
+ BOOST_CHECK_EQUAL( itl::contains(join_map, K_v(1,2)), true );
     BOOST_CHECK_EQUAL( itl::contains(join_map, K_v(5,1)), true );
     BOOST_CHECK_EQUAL( itl::contains(join_map, K_v(9,2)), true );
 
@@ -1491,7 +1491,7 @@
     split_A.add(I0_3D_1).add(I4_4I_1).add(I6_6I_1);
     split_B.add(I4_4I_1).add(I6_6I_1);
 
- itl::erase_if(size_greater_1<typename SplitIntervalMapT::value_type>(), split_A);
+ itl::erase_if(size_greater_1<typename SplitIntervalMapT::value_type>(), split_A);
 
     BOOST_CHECK_EQUAL( split_A, split_B );
 }

Modified: sandbox/itl/libs/itl/test/test_interval_map_shared.hpp
==============================================================================
--- sandbox/itl/libs/itl/test/test_interval_map_shared.hpp (original)
+++ sandbox/itl/libs/itl/test/test_interval_map_shared.hpp 2010-09-29 16:03:57 EDT (Wed, 29 Sep 2010)
@@ -42,7 +42,7 @@
     //empty set
     //-------------------------------------------------------------------------
     BOOST_CHECK_EQUAL(IntervalMapT().empty(), true);
- BOOST_CHECK_EQUAL(itl::is_empty(IntervalMapT()), true);
+ BOOST_CHECK_EQUAL(itl::is_empty(IntervalMapT()), true);
     BOOST_CHECK_EQUAL(cardinality(IntervalMapT()), neutron<size_T>::value());
     BOOST_CHECK_EQUAL(IntervalMapT().size(), neutron<size_T>::value());
     BOOST_CHECK_EQUAL(itl::size(IntervalMapT()), neutron<size_T>::value());
@@ -365,8 +365,8 @@
     //USASO: unsatisfctory solution 2: not implementing mapping_type version of o=
 
     BOOST_CHECK_EQUAL( cardinality(is_123_5), itl::infinity<size_T>::value() );
- BOOST_CHECK_EQUAL( is_123_5.size(), itl::infinity<size_T>::value() );
- BOOST_CHECK_EQUAL( itl::length(is_123_5), d2 );
+ BOOST_CHECK_EQUAL( is_123_5.size(), itl::infinity<size_T>::value() );
+ BOOST_CHECK_EQUAL( itl::length(is_123_5), d2 );
 
 }
 

Modified: sandbox/itl/libs/itl/test/test_interval_quantifier_shared.hpp
==============================================================================
--- sandbox/itl/libs/itl/test/test_interval_quantifier_shared.hpp (original)
+++ sandbox/itl/libs/itl/test/test_interval_quantifier_shared.hpp 2010-09-29 16:03:57 EDT (Wed, 29 Sep 2010)
@@ -21,10 +21,10 @@
>
 void make_3_itv_maps_and_derivatives_1
                    (IntervalMap<T,U,Trt>& itv_map_a,
- IntervalMap<T,U,Trt>& itv_map_b,
- IntervalMap<T,U,Trt>& itv_map_c,
- typename IntervalMap<T,U,Trt>::interval_mapping_type& val_pair,
- mapping_pair<T,U>& map_pair)
+ IntervalMap<T,U,Trt>& itv_map_b,
+ IntervalMap<T,U,Trt>& itv_map_c,
+ typename IntervalMap<T,U,Trt>::interval_mapping_type& val_pair,
+ mapping_pair<T,U>& map_pair)
 {
     typedef IntervalMap<T,U,Trt> IntervalMapT;
 

Modified: sandbox/itl/libs/itl/test/test_interval_set_shared.hpp
==============================================================================
--- sandbox/itl/libs/itl/test/test_interval_set_shared.hpp (original)
+++ sandbox/itl/libs/itl/test/test_interval_set_shared.hpp 2010-09-29 16:03:57 EDT (Wed, 29 Sep 2010)
@@ -37,7 +37,7 @@
     //empty set
     //-------------------------------------------------------------------------
     BOOST_CHECK_EQUAL(IntervalSet<T>().empty(), true);
- BOOST_CHECK_EQUAL(itl::is_empty(IntervalSet<T>()), true);
+ BOOST_CHECK_EQUAL(itl::is_empty(IntervalSet<T>()), true);
     BOOST_CHECK_EQUAL(cardinality(IntervalSet<T>()), neutron<size_T>::value());
     BOOST_CHECK_EQUAL(IntervalSet<T>().size(), neutron<size_T>::value());
     BOOST_CHECK_EQUAL(interval_count(IntervalSet<T>()), 0);
@@ -433,9 +433,9 @@
     IntervalSet<T> is(v1);
     BOOST_CHECK_EQUAL( itl::contains(is, v1), true );
 
- BOOST_CHECK_EQUAL( itl::contains(IntervalSet<T>().add(make<T>(2)), make<T>(2)), true );
- BOOST_CHECK_EQUAL( itl::contains(IntervalSet<T>().insert(make<T>(2)), make<T>(2)), true );
- BOOST_CHECK_EQUAL( itl::contains((is += IntervalT(v3,v7)), IntervalT(v3,v7)), true );
+ BOOST_CHECK_EQUAL( itl::contains(IntervalSet<T>().add(make<T>(2)), make<T>(2)), true );
+ BOOST_CHECK_EQUAL( itl::contains(IntervalSet<T>().insert(make<T>(2)), make<T>(2)), true );
+ BOOST_CHECK_EQUAL( itl::contains((is += IntervalT(v3,v7)), IntervalT(v3,v7)), true );
 
     IntervalSet<T> is0 = is;
 

Modified: sandbox/itl/libs/itl/test/test_itl_interval.hpp
==============================================================================
--- sandbox/itl/libs/itl/test/test_itl_interval.hpp (original)
+++ sandbox/itl/libs/itl/test/test_itl_interval.hpp 2010-09-29 16:03:57 EDT (Wed, 29 Sep 2010)
@@ -5,22 +5,24 @@
       (See accompanying file LICENCE.txt or copy at
            http://www.boost.org/LICENSE_1_0.txt)
 +-----------------------------------------------------------------------------*/
-#ifndef __test_itl_interval_hpp_JOFA_081006__
-#define __test_itl_interval_hpp_JOFA_081006__
+#ifndef BOOST_ITL_TEST_ITL_INTERVAL_HPP_JOFA_081006
+#define BOOST_ITL_TEST_ITL_INTERVAL_HPP_JOFA_081006
 
-template <class T>
+template <class T, class IntervalT>
 void interval_ctor_4_ordered_types()
 {
     // An empty interval is defined as the closed interval [1,0]
- BOOST_CHECK_EQUAL(interval<T>().empty(), true);
- BOOST_CHECK_EQUAL(interval<T>().cardinality(), itl::neutron<typename itl::size_type_of<T>::type>::value());
- BOOST_CHECK_EQUAL(interval<T>().size(), itl::neutron<typename itl::size_type_of<T>::type>::value());
- BOOST_CHECK_EQUAL(interval<T>().lower(), itl::unon<T>::value());
- BOOST_CHECK_EQUAL(interval<T>().upper(), itl::neutron<T>::value());
-
- BOOST_CHECK_EQUAL(interval<T>(), interval<T>());
- BOOST_CHECK_EQUAL(interval<T>(), interval<T>(itl::unon<T>::value(), itl::neutron<T>::value()));
- BOOST_CHECK_EQUAL(interval<T>(), interval<T>(itl::unon<T>::value(), itl::neutron<T>::value(), closed_bounded));
+ BOOST_CHECK_EQUAL(itl::is_empty(IntervalT()), true);
+ BOOST_CHECK_EQUAL(itl::cardinality(IntervalT()), itl::neutron<typename itl::size_type_of<T>::type>::value());
+ BOOST_CHECK_EQUAL(itl::size(IntervalT()), itl::neutron<typename itl::size_type_of<T>::type>::value());
+ BOOST_CHECK_EQUAL(IntervalT().lower(), itl::unon<T>::value());
+ BOOST_CHECK_EQUAL(IntervalT().upper(), itl::neutron<T>::value());
+ BOOST_CHECK_EQUAL(itl::lower(IntervalT()), itl::unon<T>::value());
+ BOOST_CHECK_EQUAL(itl::upper(IntervalT()), itl::neutron<T>::value());
+
+ //BOOST_CHECK_EQUAL(IntervalT(), IntervalT());
+ //BOOST_CHECK_EQUAL(IntervalT(), IntervalT(itl::unon<T>::value(), itl::neutron<T>::value()));
+ //BOOST_CHECK_EQUAL(IntervalT(), IntervalT(itl::unon<T>::value(), itl::neutron<T>::value(), closed_bounded));
 }
 
 template <class T>

Modified: sandbox/itl/libs/itl/test/test_itl_interval_shared.hpp
==============================================================================
--- sandbox/itl/libs/itl/test/test_itl_interval_shared.hpp (original)
+++ sandbox/itl/libs/itl/test/test_itl_interval_shared.hpp 2010-09-29 16:03:57 EDT (Wed, 29 Sep 2010)
@@ -46,12 +46,11 @@
     BOOST_CHECK_EQUAL( I4_4I.bounds() == interval_bounds::left_open(), false );
     BOOST_CHECK_EQUAL( I4_4I.bounds() == interval_bounds::right_open(), false );
     BOOST_CHECK_EQUAL( I4_4I.bounds() == interval_bounds::open(), false );
- /*JODO
- BOOST_CHECK_EQUAL( I4_4I.is_left(closed_bounded), true );
- BOOST_CHECK_EQUAL( I4_4I.is_right(closed_bounded), true );
- BOOST_CHECK_EQUAL( I4_4I.is_left(open_bounded), false );
- BOOST_CHECK_EQUAL( I4_4I.is_right(open_bounded), false );
- */
+ //JODO
+ //BOOST_CHECK_EQUAL( I4_4I.is_left(closed_bounded), true );
+ //BOOST_CHECK_EQUAL( I4_4I.is_right(closed_bounded), true );
+ //BOOST_CHECK_EQUAL( I4_4I.is_left(open_bounded), false );
+ //BOOST_CHECK_EQUAL( I4_4I.is_right(open_bounded), false );
 
     BOOST_CHECK_EQUAL( I4_4I.lower(), v4 );
     BOOST_CHECK_EQUAL( I4_4I.upper(), v4 );
@@ -69,81 +68,80 @@
     k_4_4 = j_4_4;
     BOOST_CHECK_EQUAL( I4_4I, k_4_4 );
 
- /*
- T v2 = make<T>(2);
- BOOST_CHECK_EQUAL( interval<T>::closed(v2, v4), interval<T>(v2, v4) );
- BOOST_CHECK_EQUAL( interval<T>::closed(v2, v4), interval<T>(v2, v4, closed_bounded) );
- BOOST_CHECK_EQUAL( interval<T>::rightopen(v2, v4), interval<T>(v2, v4, right_open) );
- BOOST_CHECK_EQUAL( interval<T>::leftopen(v2, v4), interval<T>(v2, v4, left_open) );
- BOOST_CHECK_EQUAL( interval<T>::open(v2, v4), interval<T>(v2, v4, open_bounded) );
-
- BOOST_CHECK_EQUAL( interval<T>::closed(v2, v4).lower(), v2 );
- BOOST_CHECK_EQUAL( interval<T>::closed(v2, v4).upper(), v4 );
- BOOST_CHECK_EQUAL( interval<T>::closed(v2, v4).boundtype(), closed_bounded );
- BOOST_CHECK_EQUAL( interval<T>::closed(v2, v4).bounds() == interval_bounds::closed_bounded(), true );
- BOOST_CHECK_EQUAL( interval<T>::closed(v2, v4).is_left(closed_bounded), true );
- BOOST_CHECK_EQUAL( interval<T>::closed(v2, v4).is_right(closed_bounded), true );
-
- BOOST_CHECK_EQUAL( interval<T>::rightopen(v2, v4).lower(), v2 );
- BOOST_CHECK_EQUAL( interval<T>::rightopen(v2, v4).upper(), v4 );
- BOOST_CHECK_EQUAL( interval<T>::rightopen(v2, v4).boundtype(), right_open );
- BOOST_CHECK_EQUAL( interval<T>::rightopen(v2, v4).bounds() == interval_bounds::right_open(), true );
- BOOST_CHECK_EQUAL( interval<T>::rightopen(v2, v4).is_left(closed_bounded), true );
- BOOST_CHECK_EQUAL( interval<T>::rightopen(v2, v4).is_right(open_bounded), true );
-
- BOOST_CHECK_EQUAL( interval<T>::leftopen(v2, v4).lower(), v2 );
- BOOST_CHECK_EQUAL( interval<T>::leftopen(v2, v4).upper(), v4 );
- BOOST_CHECK_EQUAL( interval<T>::leftopen(v2, v4).boundtype(), left_open );
- BOOST_CHECK_EQUAL( interval<T>::leftopen(v2, v4).bounds() == interval_bounds::left_open(), true );
- BOOST_CHECK_EQUAL( interval<T>::leftopen(v2, v4).is_left(open_bounded), true );
- BOOST_CHECK_EQUAL( interval<T>::leftopen(v2, v4).is_right(closed_bounded), true );
-
- BOOST_CHECK_EQUAL( interval<T>::open(v2, v4).lower(), v2 );
- BOOST_CHECK_EQUAL( interval<T>::open(v2, v4).upper(), v4 );
- BOOST_CHECK_EQUAL( interval<T>::open(v2, v4).boundtype(), open_bounded );
- BOOST_CHECK_EQUAL( interval<T>::open(v2, v4).bounds() == interval_bounds::open_bounded(), true );
- BOOST_CHECK_EQUAL( interval<T>::open(v2, v4).is_left(open_bounded), true );
- BOOST_CHECK_EQUAL( interval<T>::open(v2, v4).is_right(open_bounded), true );
- */
+ //JODO
+ //T v2 = make<T>(2);
+ //BOOST_CHECK_EQUAL( interval<T>::closed(v2, v4), interval<T>(v2, v4) );
+ //BOOST_CHECK_EQUAL( interval<T>::closed(v2, v4), interval<T>(v2, v4, closed_bounded) );
+ //BOOST_CHECK_EQUAL( interval<T>::rightopen(v2, v4), interval<T>(v2, v4, right_open) );
+ //BOOST_CHECK_EQUAL( interval<T>::leftopen(v2, v4), interval<T>(v2, v4, left_open) );
+ //BOOST_CHECK_EQUAL( interval<T>::open(v2, v4), interval<T>(v2, v4, open_bounded) );
+
+ //BOOST_CHECK_EQUAL( interval<T>::closed(v2, v4).lower(), v2 );
+ //BOOST_CHECK_EQUAL( interval<T>::closed(v2, v4).upper(), v4 );
+ //BOOST_CHECK_EQUAL( interval<T>::closed(v2, v4).boundtype(), closed_bounded );
+ //BOOST_CHECK_EQUAL( interval<T>::closed(v2, v4).bounds() == interval_bounds::closed_bounded(), true );
+ //BOOST_CHECK_EQUAL( interval<T>::closed(v2, v4).is_left(closed_bounded), true );
+ //BOOST_CHECK_EQUAL( interval<T>::closed(v2, v4).is_right(closed_bounded), true );
+
+ //BOOST_CHECK_EQUAL( interval<T>::rightopen(v2, v4).lower(), v2 );
+ //BOOST_CHECK_EQUAL( interval<T>::rightopen(v2, v4).upper(), v4 );
+ //BOOST_CHECK_EQUAL( interval<T>::rightopen(v2, v4).boundtype(), right_open );
+ //BOOST_CHECK_EQUAL( interval<T>::rightopen(v2, v4).bounds() == interval_bounds::right_open(), true );
+ //BOOST_CHECK_EQUAL( interval<T>::rightopen(v2, v4).is_left(closed_bounded), true );
+ //BOOST_CHECK_EQUAL( interval<T>::rightopen(v2, v4).is_right(open_bounded), true );
+
+ //BOOST_CHECK_EQUAL( interval<T>::leftopen(v2, v4).lower(), v2 );
+ //BOOST_CHECK_EQUAL( interval<T>::leftopen(v2, v4).upper(), v4 );
+ //BOOST_CHECK_EQUAL( interval<T>::leftopen(v2, v4).boundtype(), left_open );
+ //BOOST_CHECK_EQUAL( interval<T>::leftopen(v2, v4).bounds() == interval_bounds::left_open(), true );
+ //BOOST_CHECK_EQUAL( interval<T>::leftopen(v2, v4).is_left(open_bounded), true );
+ //BOOST_CHECK_EQUAL( interval<T>::leftopen(v2, v4).is_right(closed_bounded), true );
+
+ //BOOST_CHECK_EQUAL( interval<T>::open(v2, v4).lower(), v2 );
+ //BOOST_CHECK_EQUAL( interval<T>::open(v2, v4).upper(), v4 );
+ //BOOST_CHECK_EQUAL( interval<T>::open(v2, v4).boundtype(), open_bounded );
+ //BOOST_CHECK_EQUAL( interval<T>::open(v2, v4).bounds() == interval_bounds::open_bounded(), true );
+ //BOOST_CHECK_EQUAL( interval<T>::open(v2, v4).is_left(open_bounded), true );
+ //BOOST_CHECK_EQUAL( interval<T>::open(v2, v4).is_right(open_bounded), true );
 }
 
-/*JODO
-template <class T, ITL_COMPARE Compare,
- ITL_INTERVAL(ITL_COMPARE) Interval>
-void interval_equal_4_bicremental_continuous_types()
-{
- T v3 = make<T>(3);
- T v7 = make<T>(7);
- BOOST_CHECK_EQUAL(interval<T>(), interval<T>(v7,v3));
-
- //I: (I)nside = closed bound
- //O: (O)utside = open bound
- interval<T> I3_7I = interval<T>::closed(v3,v7);
- interval<T> I3_7D = interval<T>::rightopen(v3,v7);
- interval<T> C3_7I = interval<T>::leftopen(v3,v7);
- interval<T> C3_7D = interval<T>::open(v3,v7);
-
- BOOST_CHECK_EQUAL( I3_7I , I3_7I );
- BOOST_CHECK_EQUAL( I3_7I == I3_7D, false );
- BOOST_CHECK_EQUAL( I3_7I == C3_7D, false );
- BOOST_CHECK_EQUAL( I3_7I == C3_7D, false );
- BOOST_CHECK_EQUAL( I3_7I != I3_7D, true );
- BOOST_CHECK_EQUAL( I3_7I != C3_7D, true );
- BOOST_CHECK_EQUAL( I3_7I != C3_7D, true );
-
- BOOST_CHECK_EQUAL( I3_7D , I3_7D );
- BOOST_CHECK_EQUAL( I3_7D == C3_7I, false );
- BOOST_CHECK_EQUAL( I3_7D == C3_7D, false );
- BOOST_CHECK_EQUAL( I3_7D != C3_7I, true );
- BOOST_CHECK_EQUAL( I3_7D != C3_7D, true );
-
- BOOST_CHECK_EQUAL( C3_7I , C3_7I );
- BOOST_CHECK_EQUAL( C3_7I == C3_7D, false );
- BOOST_CHECK_EQUAL( C3_7I != C3_7D, true );
-
- BOOST_CHECK_EQUAL( C3_7D, C3_7D );
-}
-*/
+//JODO
+//template <class T, ITL_COMPARE Compare,
+// ITL_INTERVAL(ITL_COMPARE) Interval>
+//void interval_equal_4_bicremental_continuous_types()
+//{
+// T v3 = make<T>(3);
+// T v7 = make<T>(7);
+// BOOST_CHECK_EQUAL(interval<T>(), interval<T>(v7,v3));
+//
+// //I: (I)nside = closed bound
+// //O: (O)utside = open bound
+// interval<T> I3_7I = interval<T>::closed(v3,v7);
+// interval<T> I3_7D = interval<T>::rightopen(v3,v7);
+// interval<T> C3_7I = interval<T>::leftopen(v3,v7);
+// interval<T> C3_7D = interval<T>::open(v3,v7);
+//
+// BOOST_CHECK_EQUAL( I3_7I , I3_7I );
+// BOOST_CHECK_EQUAL( I3_7I == I3_7D, false );
+// BOOST_CHECK_EQUAL( I3_7I == C3_7D, false );
+// BOOST_CHECK_EQUAL( I3_7I == C3_7D, false );
+// BOOST_CHECK_EQUAL( I3_7I != I3_7D, true );
+// BOOST_CHECK_EQUAL( I3_7I != C3_7D, true );
+// BOOST_CHECK_EQUAL( I3_7I != C3_7D, true );
+//
+// BOOST_CHECK_EQUAL( I3_7D , I3_7D );
+// BOOST_CHECK_EQUAL( I3_7D == C3_7I, false );
+// BOOST_CHECK_EQUAL( I3_7D == C3_7D, false );
+// BOOST_CHECK_EQUAL( I3_7D != C3_7I, true );
+// BOOST_CHECK_EQUAL( I3_7D != C3_7D, true );
+//
+// BOOST_CHECK_EQUAL( C3_7I , C3_7I );
+// BOOST_CHECK_EQUAL( C3_7I == C3_7D, false );
+// BOOST_CHECK_EQUAL( C3_7I != C3_7D, true );
+//
+// BOOST_CHECK_EQUAL( C3_7D, C3_7D );
+//}
+
 
 template <class DomainT, ITL_COMPARE Compare,
           ITL_INTERVAL(ITL_COMPARE) Interval>

Modified: sandbox/itl/libs/itl/test/test_itl_map.hpp
==============================================================================
--- sandbox/itl/libs/itl/test/test_itl_map.hpp (original)
+++ sandbox/itl/libs/itl/test/test_itl_map.hpp 2010-09-29 16:03:57 EDT (Wed, 29 Sep 2010)
@@ -24,7 +24,7 @@
     typedef IntervalMap<T,U,Trt> IntervalMapT;
     typedef itl::map<T,U,Trt> MapT;
     typedef itl::set<T> SetT;
- typedef typename MapT::element_type map_element_type;
+ typedef typename MapT::element_type map_element_type;
 
     IntervalMapT itv_map_a;
     itv_map_a.add(IDv(2,4,1)).add(IIv(6,7,3));
@@ -35,7 +35,7 @@
     BOOST_CHECK_EQUAL( contains(map_a, MK_u(3)), true );
     BOOST_CHECK_EQUAL( within(MK_u(3), map_a), true );
 
- map_element_type key_value_pair(MK_v(6), MK_u(3));
+ map_element_type key_value_pair(MK_v(6), MK_u(3));
     BOOST_CHECK( contains(map_a, key_value_pair) );
     BOOST_CHECK( within(key_value_pair, map_a) );
 

Modified: sandbox/itl/libs/itl/test/test_laws.hpp
==============================================================================
--- sandbox/itl/libs/itl/test/test_laws.hpp (original)
+++ sandbox/itl/libs/itl/test/test_laws.hpp 2010-09-29 16:03:57 EDT (Wed, 29 Sep 2010)
@@ -230,36 +230,36 @@
 template<class Type, class TypeB>
 void check_intersection_containedness(const Type& a, const TypeB& b)
 {
- BOOST_CHECK_EQUAL(contains(a, a & b), true);
- BOOST_CHECK_EQUAL(contains(a, b & a), true);
- BOOST_CHECK_EQUAL(within(a & b, a), true);
- BOOST_CHECK_EQUAL(within(b & a, a), true);
+ BOOST_CHECK_EQUAL(contains(a, a & b), true);
+ BOOST_CHECK_EQUAL(contains(a, b & a), true);
+ BOOST_CHECK_EQUAL(within(a & b, a), true);
+ BOOST_CHECK_EQUAL(within(b & a, a), true);
 }
 
 template<class Type, class TypeB>
 void check_union_containedness(const Type& a, const TypeB& b)
 {
- BOOST_CHECK_EQUAL(within(a, a + b), true);
- BOOST_CHECK_EQUAL(within(a, b + a), true);
- BOOST_CHECK_EQUAL(contains(a + b, a), true);
- BOOST_CHECK_EQUAL(contains(b + a, a), true);
+ BOOST_CHECK_EQUAL(within(a, a + b), true);
+ BOOST_CHECK_EQUAL(within(a, b + a), true);
+ BOOST_CHECK_EQUAL(contains(a + b, a), true);
+ BOOST_CHECK_EQUAL(contains(b + a, a), true);
 }
 
 template<class MapT>
 void check_domain_containedness(const MapT& a)
 {
- typedef typename MapT::set_type set_type;
- set_type dom;
- domain(dom, a);
- BOOST_CHECK_EQUAL(within(dom, a), true);
- BOOST_CHECK_EQUAL(contains(a, dom), true);
-
- if(!dom.empty())
- {
- typename MapT::domain_type a1 = *dom.begin();
- BOOST_CHECK_EQUAL(within(a1, a), true);
- BOOST_CHECK_EQUAL(contains(a, a1), true);
- }
+ typedef typename MapT::set_type set_type;
+ set_type dom;
+ domain(dom, a);
+ BOOST_CHECK_EQUAL(within(dom, a), true);
+ BOOST_CHECK_EQUAL(contains(a, dom), true);
+
+ if(!dom.empty())
+ {
+ typename MapT::domain_type a1 = *dom.begin();
+ BOOST_CHECK_EQUAL(within(a1, a), true);
+ BOOST_CHECK_EQUAL(contains(a, a1), true);
+ }
 }
 
 //==============================================================================

Modified: sandbox/itl/libs/itl/test/test_set_interval_set_shared.hpp
==============================================================================
--- sandbox/itl/libs/itl/test/test_set_interval_set_shared.hpp (original)
+++ sandbox/itl/libs/itl/test/test_set_interval_set_shared.hpp 2010-09-29 16:03:57 EDT (Wed, 29 Sep 2010)
@@ -19,12 +19,12 @@
>
 void make_3_interval_sets_and_derivatives_1
                    (IntervalSet<T>& set_a,
- IntervalSet<T>& set_b,
- IntervalSet<T>& set_c,
- typename IntervalSet<T>::segment_type& segm_d,
- typename IntervalSet<T>::element_type& elem_e)
+ IntervalSet<T>& set_b,
+ IntervalSet<T>& set_c,
+ typename IntervalSet<T>::segment_type& segm_d,
+ typename IntervalSet<T>::element_type& elem_e)
 {
- typedef IntervalSet<T> IntervalSetT;
+ typedef IntervalSet<T> IntervalSetT;
     typedef typename IntervalSetT::segment_type IntervalT;
     typedef typename IntervalSetT::segment_type segment_type;
     typedef typename IntervalSetT::element_type element_type;
@@ -187,18 +187,18 @@
     typedef typename IntervalSetT::segment_type segment_type;
     typedef typename IntervalSetT::element_type element_type;
 
- IntervalSetT set_a, set_b, set_c;
- segment_type segm_d;
- element_type elem_e;
- make_3_interval_sets_and_derivatives_1(set_a, set_b, set_c, segm_d, elem_e);
-
- check_intersection_containedness(set_a, set_c);
- check_intersection_containedness(set_b, segm_d);
- check_intersection_containedness(set_c, elem_e);
-
- check_union_containedness(set_c, set_c);
- check_union_containedness(set_b, segm_d);
- check_union_containedness(set_a, elem_e);
+ IntervalSetT set_a, set_b, set_c;
+ segment_type segm_d;
+ element_type elem_e;
+ make_3_interval_sets_and_derivatives_1(set_a, set_b, set_c, segm_d, elem_e);
+
+ check_intersection_containedness(set_a, set_c);
+ check_intersection_containedness(set_b, segm_d);
+ check_intersection_containedness(set_c, elem_e);
+
+ check_union_containedness(set_c, set_c);
+ check_union_containedness(set_b, segm_d);
+ check_union_containedness(set_a, elem_e);
 }
 
 

Modified: sandbox/itl/libs/itl/test/test_type_lists.hpp
==============================================================================
--- sandbox/itl/libs/itl/test/test_type_lists.hpp (original)
+++ sandbox/itl/libs/itl/test/test_type_lists.hpp 2010-09-29 16:03:57 EDT (Wed, 29 Sep 2010)
@@ -15,8 +15,6 @@
 #include <boost/itl/ptime.hpp>
 #include <boost/itl/rational.hpp>
 
-#include <boost/itl/interval.hpp>
-
 #if(_MSC_VER < 1500 && defined(_DEBUG) ) // 1500 = MSVC-9.0
 typedef int boost_posix_time_ptime;
 #else

Modified: sandbox/itl/libs/itl/test/test_value_maker.hpp
==============================================================================
--- sandbox/itl/libs/itl/test/test_value_maker.hpp (original)
+++ sandbox/itl/libs/itl/test/test_value_maker.hpp 2010-09-29 16:03:57 EDT (Wed, 29 Sep 2010)
@@ -9,6 +9,7 @@
 #define BOOST_ITL_TEST_VALUE_MAKER_HPP_JOFA_080916
 
 #include <boost/itl/type_traits/neutron.hpp>
+#include <boost/itl/interval_bounds.hpp>
 #include "test_calls.hpp"
 
 namespace boost{ namespace itl
@@ -26,10 +27,10 @@
 
 struct mono
 {
- mono(){};
- mono& operator ++ (){ return *this; }
- mono& operator -- (){ return *this; }
- mono& operator += (const mono&){ return *this; }
+ mono(){};
+ mono& operator ++ (){ return *this; }
+ mono& operator -- (){ return *this; }
+ mono& operator += (const mono&){ return *this; }
 };
 
 bool operator == (const mono&, const mono&){ return true; }

Modified: sandbox/itl/libs/validate/example/labat_signed_quantifier_/labat_signed_quantifier.cpp
==============================================================================
--- sandbox/itl/libs/validate/example/labat_signed_quantifier_/labat_signed_quantifier.cpp (original)
+++ sandbox/itl/libs/validate/example/labat_signed_quantifier_/labat_signed_quantifier.cpp 2010-09-29 16:03:57 EDT (Wed, 29 Sep 2010)
@@ -29,7 +29,7 @@
     GentorProfileSgl::it()->set_range_double(-1.0, 1.0);
     GentorProfileSgl::it()->report_profile();
 
- //validater.set_information_level(inform::never);
+ //validater.set_information_level(inform::never);
     validater.validate();
 };
 

Modified: sandbox/itl/libs/validate/example/labat_single_/labat_single.cpp
==============================================================================
--- sandbox/itl/libs/validate/example/labat_single_/labat_single.cpp (original)
+++ sandbox/itl/libs/validate/example/labat_single_/labat_single.cpp 2010-09-29 16:03:57 EDT (Wed, 29 Sep 2010)
@@ -84,11 +84,11 @@
     //TestLawT;
 
     //typedef Antisymmetry<itl::map<int,int>, itl::sub_super_set, itl::element_equal> TestLawT;
- //typedef InplaceAssociativity<itl::interval_map<int,itl::set<int> >, itl::inplace_caret, itl::element_equal> TestLawT;
+ //typedef InplaceAssociativity<itl::interval_map<int,itl::set<int> >, itl::inplace_caret, itl::element_equal> TestLawT;
 
- typedef InplaceFlip< itl::map<int,int,partial_enricher> > TestLawT;
- //typedef InplaceFlip< itl::map<int,int> > TestLawT;
- //typedef InplaceFlip< itl::map<int, itl::set<int> > > TestLawT;
+ typedef InplaceFlip< itl::map<int,int,partial_enricher> > TestLawT;
+ //typedef InplaceFlip< itl::map<int,int> > TestLawT;
+ //typedef InplaceFlip< itl::map<int, itl::set<int> > > TestLawT;
 
     LawValidater<TestLawT> test_law;
 


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