Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r76155 - in trunk: boost/icl boost/icl/type_traits libs/icl/test libs/icl/test/fastest_icl_interval_ libs/icl/test/fastest_icl_map_ libs/icl/test/fastest_interval_map_mixed_ libs/icl/test/fastest_set_interval_set_ libs/icl/test/test_combinable_ libs/icl/test/test_type_traits_
From: afojgo_at_[hidden]
Date: 2011-12-25 14:14:26


Author: jofaber
Date: 2011-12-25 14:14:24 EST (Sun, 25 Dec 2011)
New Revision: 76155
URL: http://svn.boost.org/trac/boost/changeset/76155

Log:
Added move emulation.
Text files modified:
   trunk/boost/icl/impl_config.hpp | 38 +++--
   trunk/boost/icl/interval_base_map.hpp | 22 --
   trunk/boost/icl/interval_base_set.hpp | 44 ++++-
   trunk/boost/icl/interval_map.hpp | 37 +++-
   trunk/boost/icl/interval_set.hpp | 17 ++
   trunk/boost/icl/map.hpp | 62 ++++----
   trunk/boost/icl/separate_interval_set.hpp | 29 +++
   trunk/boost/icl/set.hpp | 10
   trunk/boost/icl/split_interval_map.hpp | 51 ++++--
   trunk/boost/icl/split_interval_set.hpp | 28 +++
   trunk/boost/icl/type_traits/is_discrete.hpp | 1
   trunk/libs/icl/test/Jamfile.v2 | 2
   trunk/libs/icl/test/fastest_icl_interval_/fastest_icl_interval.cpp | 34 ++--
   trunk/libs/icl/test/fastest_icl_map_/fastest_icl_map_cases.hpp | 12 +
   trunk/libs/icl/test/fastest_interval_map_cases.hpp | 4
   trunk/libs/icl/test/fastest_interval_map_mixed_/fastest_interval_map_mixed.cpp | 4
   trunk/libs/icl/test/fastest_interval_set_cases.hpp | 4
   trunk/libs/icl/test/fastest_set_interval_set_/fastest_set_interval_set_cases.hpp | 28 +-
   trunk/libs/icl/test/test_combinable_/test_combinable.cpp | 16 +-
   trunk/libs/icl/test/test_icl_map.hpp | 58 +++++---
   trunk/libs/icl/test/test_interval_map_shared.hpp | 13
   trunk/libs/icl/test/test_interval_set_shared.hpp | 23 +++
   trunk/libs/icl/test/test_type_traits_/test_type_traits.cpp | 6
   trunk/libs/icl/test/vc9_icl_fast_tests.sln | 282 +++++++++++++++++++--------------------
   24 files changed, 489 insertions(+), 336 deletions(-)

Modified: trunk/boost/icl/impl_config.hpp
==============================================================================
--- trunk/boost/icl/impl_config.hpp (original)
+++ trunk/boost/icl/impl_config.hpp 2011-12-25 14:14:24 EST (Sun, 25 Dec 2011)
@@ -10,33 +10,39 @@
 #define BOOST_ICL_IMPL_CONFIG_HPP_JOFA_091225
 
 /*-----------------------------------------------------------------------------+
-You can choose an implementation for the basic set and map classes.
-Select at most ONE of the following defines
+| You can choose an implementation for the basic set and map classes. |
+| Select at most ONE of the following defines to change the default |
 +-----------------------------------------------------------------------------*/
 
-//#define ICL_USE_STD_IMPLEMENTATION
-//#define ICL_USE_BOOST_INTERPROCESS_IMPLEMENTATION
-//#define ICL_USE_BOOST_MOVE_IMPLEMENTATION
+//#define ICL_USE_STD_IMPLEMENTATION // Default
+//#define ICL_USE_BOOST_MOVE_IMPLEMENTATION // Enables Move semantics for ICL
+// ICL_USE_BOOST_INTERPROCESS_IMPLEMENTATION // No longer available
 
 /*-----------------------------------------------------------------------------+
-NO define or ICL_USE_STD_IMPLEMENTATION: Choose std::set and std::map as
- implementing containers (default).
-
-ICL_USE_BOOST_INTERPROCESS_IMPLEMENTATION: Choose set and map implementations
- from boost::interprocess.
-
-ICL_USE_BOOST_MOVE_IMPLEMENTATION: Move aware containers from boost::container.
+| NO define or ICL_USE_STD_IMPLEMENTATION: Choose std::set and std::map from |
+| your local std implementation as basic containers of elements (DEFAULT). |
+| |
+| ICL_USE_BOOST_MOVE_IMPLEMENTATION: |
+| Move aware containers from boost::container. Choosing boost containers |
+| enables move semantics for ICL. |
+| |
+| NOTE: ICL_USE_BOOST_INTERPROCESS_IMPLEMENTATION: This define has been |
+| available until boost version 1.48.0 and is no longer supported. |
 +-----------------------------------------------------------------------------*/
 
-#if defined(ICL_USE_BOOST_INTERPROCESS_IMPLEMENTATION)
-# define ICL_IMPL_SPACE boost::interprocess
-#elif defined(ICL_USE_BOOST_MOVE_IMPLEMENTATION)
+#if defined(ICL_USE_BOOST_MOVE_IMPLEMENTATION)
 # define ICL_IMPL_SPACE boost::container
-# define BOOST_ICL_IS_MOVE_AWARE
+#elif defined(ICL_USE_STD_IMPLEMENTATION)
+# define ICL_IMPL_SPACE std
 #else
 # define ICL_IMPL_SPACE std
 #endif
 
+/*-----------------------------------------------------------------------------+
+| Move emulation is used since version 1.49.0 |
++-----------------------------------------------------------------------------*/
+#include <boost/move/move.hpp>
+
 #endif // BOOST_ICL_IMPL_CONFIG_HPP_JOFA_091225
 
 

Modified: trunk/boost/icl/interval_base_map.hpp
==============================================================================
--- trunk/boost/icl/interval_base_map.hpp (original)
+++ trunk/boost/icl/interval_base_map.hpp 2011-12-25 14:14:24 EST (Sun, 25 Dec 2011)
@@ -192,9 +192,7 @@
 
     BOOST_STATIC_CONSTANT(int, fineness = 0);
 
-# ifdef BOOST_ICL_IS_MOVE_AWARE
     BOOST_COPYABLE_AND_MOVABLE(interval_base_map)
-# endif
 
 public:
 
@@ -219,40 +217,34 @@
         BOOST_CONCEPT_ASSERT((EqualComparableConcept<CodomainT>));
     }
 
-# ifdef BOOST_ICL_IS_MOVE_AWARE
+ //==========================================================================
+ //= Move emulation
+ //==========================================================================
+
     /** Move constructor */
     interval_base_map(BOOST_RV_REF(interval_base_map) src): _map(boost::move(src._map))
     {
- std::cout << "."; //CL
         BOOST_CONCEPT_ASSERT((DefaultConstructibleConcept<DomainT>));
         BOOST_CONCEPT_ASSERT((LessThanComparableConcept<DomainT>));
         BOOST_CONCEPT_ASSERT((DefaultConstructibleConcept<CodomainT>));
         BOOST_CONCEPT_ASSERT((EqualComparableConcept<CodomainT>));
     }
 
- /** Copy assignment operator */
- interval_base_map& operator = (BOOST_COPY_ASSIGN_REF(interval_base_map) src)
- {
- this->_map = src._map;
- return *this;
- }
-
     /** Move assignment operator */
     interval_base_map& operator = (BOOST_RV_REF(interval_base_map) src)
     {
- std::cout << ":"; //CL
         this->_map = boost::move(src._map);
         return *this;
     }
-# else //BOOST_ICL_IS_MOVE_AWARE
 
     /** Copy assignment operator */
- interval_base_map& operator = (const interval_base_map& src)
+ interval_base_map& operator = (BOOST_COPY_ASSIGN_REF(interval_base_map) src)
     {
         this->_map = src._map;
         return *this;
     }
-# endif //BOOST_ICL_IS_MOVE_AWARE
+
+ //==========================================================================
 
     /** swap the content of containers */
     void swap(interval_base_map& object) { _map.swap(object._map); }

Modified: trunk/boost/icl/interval_base_set.hpp
==============================================================================
--- trunk/boost/icl/interval_base_set.hpp (original)
+++ trunk/boost/icl/interval_base_set.hpp 2011-12-25 14:14:24 EST (Sun, 25 Dec 2011)
@@ -11,13 +11,12 @@
 
 #include <boost/icl/impl_config.hpp>
 
-#if defined(ICL_USE_BOOST_INTERPROCESS_IMPLEMENTATION)
-#include <boost/interprocess/containers/set.hpp>
-#elif defined(ICL_USE_BOOST_MOVE_IMPLEMENTATION)
-#include <boost/container/set.hpp>
-#include <boost/move/move.hpp> //MOV JODO URG
-#else
-#include <set>
+#if defined(ICL_USE_BOOST_MOVE_IMPLEMENTATION)
+# include <boost/container/set.hpp>
+#elif defined(ICL_USE_STD_IMPLEMENTATION)
+# include <set>
+#else // Default for implementing containers
+# include <boost/container/set.hpp>
 #endif
 
 #include <limits>
@@ -163,15 +162,40 @@
     interval_base_set(){}
 
     /** Copy constructor */
- interval_base_set(const interval_base_set& src): _set(src._set){}
+ interval_base_set(const interval_base_set& src): _set(src._set)
+ {
+ BOOST_CONCEPT_ASSERT((DefaultConstructibleConcept<DomainT>));
+ BOOST_CONCEPT_ASSERT((LessThanComparableConcept<DomainT>));
+ }
+
+ //==========================================================================
+ //= Move emulation
+ //==========================================================================
+
+ /** Move constructor */
+ interval_base_set(BOOST_RV_REF(interval_base_set) src): _map(boost::move(src._map))
+ {
+ BOOST_CONCEPT_ASSERT((DefaultConstructibleConcept<DomainT>));
+ BOOST_CONCEPT_ASSERT((LessThanComparableConcept<DomainT>));
+ }
 
- /** Assignment operator */
- interval_base_set& operator = (const interval_base_set& src)
+ /** Move assignment operator */
+ interval_base_set& operator = (BOOST_RV_REF(interval_base_set) src)
+ {
+ this->_set = boost::move(src._set);
+ return *this;
+ }
+
+ /** Copy assignment operator */
+ interval_base_set& operator = (BOOST_COPY_ASSIGN_REF(interval_base_set) src)
     {
         this->_set = src._set;
         return *this;
     }
 
+ //==========================================================================
+
+
     /** swap the content of containers */
     void swap(interval_base_set& operand) { _set.swap(operand._set); }
 

Modified: trunk/boost/icl/interval_map.hpp
==============================================================================
--- trunk/boost/icl/interval_map.hpp (original)
+++ trunk/boost/icl/interval_map.hpp 2011-12-25 14:14:24 EST (Sun, 25 Dec 2011)
@@ -68,9 +68,7 @@
 
     enum { fineness = 1 };
 
-# ifdef BOOST_ICL_IS_MOVE_AWARE
     BOOST_COPYABLE_AND_MOVABLE(interval_map)
-# endif
 
 public:
     //==========================================================================
@@ -83,12 +81,6 @@
     /// Copy constructor
     interval_map(const interval_map& src): base_type(src) {}
 
-# ifdef BOOST_ICL_IS_MOVE_AWARE
- /// Move constructor
- interval_map(BOOST_RV_REF(interval_map) src)
- : base_type(boost::move(static_cast<base_type&>(src))){}
-# endif //BOOST_ICL_IS_MOVE_AWARE
-
     /// Copy constructor for base_type
     template<class SubType>
     explicit interval_map
@@ -102,11 +94,9 @@
     explicit interval_map(const value_type& value_pair): base_type()
     { this->add(value_pair); }
 
+
     /// Assignment operator
- template<class SubType>
- interval_map& operator =
- (const interval_base_map<SubType,DomainT,CodomainT,
- Traits,Compare,Combine,Section,Interval,Alloc>& src)
+ interval_map& operator = (const split_type& src)
     { this->assign(src); return *this; }
 
     /// Assignment from a base interval_map.
@@ -122,6 +112,29 @@
             prior_ = this->add(prior_, *it_);
     }
 
+ //==========================================================================
+ //= Move emulation
+ //==========================================================================
+
+ /// Move constructor
+ interval_map(BOOST_RV_REF(interval_map) src)
+ : base_type(boost::move(static_cast<base_type&>(src)))
+ {}
+
+ /// Move assignment operator
+ interval_map& operator = (BOOST_RV_REF(interval_map) src)
+ {
+ base_type::operator=(boost::move(static_cast<base_type&>(src)));
+ return *this;
+ }
+
+ /// Copy assignment operator
+ interval_map& operator = (BOOST_COPY_ASSIGN_REF(interval_map) src)
+ {
+ base_type::operator=(src);
+ return *this;
+ }
+
 private:
     // Private functions that shall be accessible by the baseclass:
     friend class

Modified: trunk/boost/icl/interval_set.hpp
==============================================================================
--- trunk/boost/icl/interval_set.hpp (original)
+++ trunk/boost/icl/interval_set.hpp 2011-12-25 14:14:24 EST (Sun, 25 Dec 2011)
@@ -87,6 +87,8 @@
 
     enum { fineness = 1 };
 
+ BOOST_COPYABLE_AND_MOVABLE(interval_set)
+
 public:
     //==========================================================================
     //= Construct, copy, destruct
@@ -135,6 +137,21 @@
             prior_ = this->add(prior_, *it_);
     }
 
+ //==========================================================================
+ //= Move emulation
+ //==========================================================================
+
+ /// Move constructor
+ interval_set(BOOST_RV_REF(interval_set) src)
+ : base_type(boost::move(static_cast<base_type&>(src)))
+ {}
+
+ /// Move assignment operator
+ interval_set& operator = (BOOST_RV_REF(interval_set) src)
+ {
+ base_type::operator=(boost::move(static_cast<base_type&>(src)));
+ return *this;
+ }
 
 private:
     // Private functions that shall be accessible by the baseclass:

Modified: trunk/boost/icl/map.hpp
==============================================================================
--- trunk/boost/icl/map.hpp (original)
+++ trunk/boost/icl/map.hpp 2011-12-25 14:14:24 EST (Sun, 25 Dec 2011)
@@ -10,18 +10,15 @@
 
 #include <boost/icl/impl_config.hpp>
 
-#if defined(ICL_USE_BOOST_INTERPROCESS_IMPLEMENTATION)
-#include <boost/interprocess/containers/map.hpp>
-#include <boost/interprocess/containers/set.hpp>
-#include <boost/interprocess/containers/flat_set.hpp> //FLAS JODO URG
-#include <boost/interprocess/containers/flat_map.hpp> //FLAS
-#elif defined(ICL_USE_BOOST_MOVE_IMPLEMENTATION)
-#include <boost/container/map.hpp>
-#include <boost/container/set.hpp>
-#include <boost/move/move.hpp> //MOV JODO URG <boost/icl/move.hpp>
-#else
-#include <map>
-#include <set>
+#if defined(ICL_USE_BOOST_MOVE_IMPLEMENTATION)
+# include <boost/container/map.hpp>
+# include <boost/container/set.hpp>
+#elif defined(ICL_USE_STD_IMPLEMENTATION)
+# include <map>
+# include <set>
+#else // Default for implementing containers
+# include <map>
+# include <set>
 #endif
 
 #include <string>
@@ -158,9 +155,7 @@
 
     BOOST_STATIC_CONSTANT(int, fineness = 4);
 
-# ifdef BOOST_ICL_IS_MOVE_AWARE
     BOOST_COPYABLE_AND_MOVABLE(map)
-# endif
 
 public:
     //==========================================================================
@@ -194,43 +189,36 @@
         BOOST_CONCEPT_ASSERT((EqualComparableConcept<CodomainT>));
     }
 
-# ifdef BOOST_ICL_IS_MOVE_AWARE
+ explicit map(const element_type& key_value_pair): base_type::map()
+ {
+ insert(key_value_pair);
+ }
+
+ //=============================================================================
+ //= Move emulation
+ //=============================================================================
+
     map(BOOST_RV_REF(map) src)
         : base_type(boost::move(static_cast<base_type&>(src)))
     {
- std::cout << "m.";//CL
         BOOST_CONCEPT_ASSERT((DefaultConstructibleConcept<DomainT>));
         BOOST_CONCEPT_ASSERT((LessThanComparableConcept<DomainT>));
         BOOST_CONCEPT_ASSERT((DefaultConstructibleConcept<CodomainT>));
         BOOST_CONCEPT_ASSERT((EqualComparableConcept<CodomainT>));
     }
-# endif //BOOST_ICL_IS_MOVE_AWARE
 
- explicit map(const element_type& key_value_pair): base_type::map()
+ map& operator = (BOOST_RV_REF(map) src)
     {
- insert(key_value_pair);
- }
-
-# ifdef BOOST_ICL_IS_MOVE_AWARE
- map& operator=(BOOST_RV_REF(map) src)
- {
- std::cout << "m=";//CL
         base_type::operator=(static_cast<base_type&>(src));
         return *this;
     }
 
- map& operator=(BOOST_COPY_ASSIGN_REF(map) src)
- {
- base_type::operator=(static_cast<const base_type&>(src));
- return *this;
- }
-# else
- map& operator=(const map& src)
+ map& operator = (BOOST_COPY_ASSIGN_REF(map) src)
     {
         base_type::operator=(static_cast<const base_type&>(src));
         return *this;
     }
-# endif //BOOST_ICL_IS_MOVE_AWARE
+ //==========================================================================
 
     void swap(map& src) { base_type::swap(src); }
 
@@ -347,6 +335,14 @@
             return base_type::insert(prior, value_pair);
     }
 
+ template<class Iterator>
+ iterator insert(Iterator first, Iterator last)
+ {
+ iterator prior = end(), it = first;
+ while(it != last)
+ prior = this->insert(prior, *it++);
+ }
+
     /** With <tt>key_value_pair = (k,v)</tt> set value \c v for key \c k */
     map& set(const element_type& key_value_pair)
     {

Modified: trunk/boost/icl/separate_interval_set.hpp
==============================================================================
--- trunk/boost/icl/separate_interval_set.hpp (original)
+++ trunk/boost/icl/separate_interval_set.hpp 2011-12-25 14:14:24 EST (Sun, 25 Dec 2011)
@@ -82,9 +82,10 @@
     /// const_iterator for iteration over intervals
     typedef typename ImplSetT::const_iterator const_iterator;
 
-
     enum { fineness = 2 };
 
+ BOOST_COPYABLE_AND_MOVABLE(separate_interval_set)
+
 public:
     //==========================================================================
     //= Construct, copy, destruct
@@ -120,8 +121,32 @@
     template<class SubType>
     void assign(const interval_base_set<SubType,DomainT,Compare,Interval,Alloc>& src)
     {
+ typedef typename
+ interval_base_set<SubType,DomainT,Compare,Interval,Alloc> src_type;
+
         this->clear();
- this->_set.insert(src.begin(), src.end());
+ //this->_set.insert(src.begin(), src.end()); //JODO range-insert is not working with Boost.Containers
+ iterator prior_ = this->end();
+ typename src_type::const_iterator it_ = src.begin();
+
+ while(it_ != src.end())
+ prior_ = this->_set.insert(prior_, *it_++);
+ }
+
+ //==========================================================================
+ //= Move emulation
+ //==========================================================================
+
+ /// Move constructor
+ separate_interval_set(BOOST_RV_REF(separate_interval_set) src)
+ : base_type(boost::move(static_cast<base_type&>(src)))
+ {}
+
+ /// Move assignment operator
+ separate_interval_set& operator = (BOOST_RV_REF(separate_interval_set) src)
+ {
+ base_type::operator=(boost::move(static_cast<base_type&>(src)));
+ return *this;
     }
 
 

Modified: trunk/boost/icl/set.hpp
==============================================================================
--- trunk/boost/icl/set.hpp (original)
+++ trunk/boost/icl/set.hpp 2011-12-25 14:14:24 EST (Sun, 25 Dec 2011)
@@ -10,12 +10,12 @@
 
 #include <boost/icl/impl_config.hpp>
 
-#if defined(ICL_USE_BOOST_INTERPROCESS_IMPLEMENTATION)
-#include <boost/interprocess/containers/set.hpp>
-#elif defined(ICL_USE_BOOST_MOVE_IMPLEMENTATION)
-#include <boost/container/set.hpp>
+#if defined(ICL_USE_BOOST_MOVE_IMPLEMENTATION)
+# include <boost/container/set.hpp>
+#elif defined(ICL_USE_STD_IMPLEMENTATION)
+# include <set>
 #else
-#include <set>
+# include <set>
 #endif
 
 #include <boost/icl/concept/associative_element_container.hpp>

Modified: trunk/boost/icl/split_interval_map.hpp
==============================================================================
--- trunk/boost/icl/split_interval_map.hpp (original)
+++ trunk/boost/icl/split_interval_map.hpp 2011-12-25 14:14:24 EST (Sun, 25 Dec 2011)
@@ -62,9 +62,7 @@
 
     enum { fineness = 3 };
 
-# ifdef BOOST_ICL_IS_MOVE_AWARE
     BOOST_COPYABLE_AND_MOVABLE(split_interval_map)
-# endif
 
 public:
     //==========================================================================
@@ -76,12 +74,6 @@
     /// Copy constructor
     split_interval_map(const split_interval_map& src): base_type(src) {}
 
-# ifdef BOOST_ICL_IS_MOVE_AWARE
- /// Move constructor
- split_interval_map(BOOST_RV_REF(split_interval_map) src)
- : base_type(boost::move(static_cast<base_type&>(src))){}
-# endif
-
     explicit split_interval_map(domain_mapping_type& base_pair): base_type()
     { this->add(base_pair); }
 
@@ -90,27 +82,50 @@
 
     /// Copy assignment operator
     template<class SubType>
- split_interval_map& operator =
- (const interval_base_map<SubType,DomainT,CodomainT,
- Traits,Compare,Combine,Section,Interval,Alloc>& src)
+ split_interval_map& operator = (const joint_type& src)
     { this->assign(src); return *this; }
 
-
     /// Assignment from a base interval_map.
     template<class SubType>
     void assign(const interval_base_map<SubType,DomainT,CodomainT,
                                         Traits,Compare,Combine,Section,Interval,Alloc>& src)
     {
- this->clear();
- this->_map.insert(src.begin(), src.end()); //JODO URG new boost.container compiler problem
- /*hack
         typedef typename
         interval_base_map<SubType,DomainT,CodomainT,Traits,Compare,Combine,Section,Interval,Alloc> src_type;
- ICL_const_FORALL(src_type, it_, src)
- this->insert(*it_);
- */
+
+ this->clear();
+ //this->_map.insert(src.begin(), src.end()); //JODO range-insert is not working with Boost.Containers
+ iterator prior_ = this->end();
+ typename src_type::const_iterator it_ = src.begin();
+
+ while(it_ != src.end())
+ prior_ = this->_map.insert(prior_, *it_++);
+ }
+
+ //==========================================================================
+ //= Move emulation
+ //==========================================================================
+
+ /// Move constructor
+ split_interval_map(BOOST_RV_REF(split_interval_map) src)
+ : base_type(boost::move(static_cast<base_type&>(src)))
+ {}
+
+ /// Move assignment operator
+ split_interval_map& operator = (BOOST_RV_REF(split_interval_map) src)
+ {
+ base_type::operator=(boost::move(static_cast<base_type&>(src)));
+ return *this;
     }
 
+ /// Copy assignment operator
+ split_interval_map& operator = (BOOST_COPY_ASSIGN_REF(split_interval_map) src)
+ {
+ base_type::operator=(src);
+ return *this;
+ }
+
+
 private:
     // Private functions that shall be accessible by the baseclass:
     friend class

Modified: trunk/boost/icl/split_interval_set.hpp
==============================================================================
--- trunk/boost/icl/split_interval_set.hpp (original)
+++ trunk/boost/icl/split_interval_set.hpp 2011-12-25 14:14:24 EST (Sun, 25 Dec 2011)
@@ -83,6 +83,8 @@
 
     enum { fineness = 3 };
 
+ BOOST_COPYABLE_AND_MOVABLE(split_interval_set)
+
 public:
     //==========================================================================
     //= Construct, copy, destruct
@@ -114,8 +116,32 @@
     template<class SubType>
     void assign(const interval_base_set<SubType,DomainT,Compare,Interval,Alloc>& src)
     {
+ typedef typename
+ interval_base_set<SubType,DomainT,Compare,Interval,Alloc> src_type;
+
         this->clear();
- this->_set.insert(src.begin(), src.end());
+ //this->_set.insert(src.begin(), src.end()); //JODO range-insert is not working with Boost.Containers
+ iterator prior_ = this->end();
+ typename src_type::const_iterator it_ = src.begin();
+
+ while(it_ != src.end())
+ prior_ = this->_set.insert(prior_, *it_++);
+ }
+
+ //==========================================================================
+ //= Move emulation
+ //==========================================================================
+
+ /// Move constructor
+ split_interval_set(BOOST_RV_REF(split_interval_set) src)
+ : base_type(boost::move(static_cast<base_type&>(src)))
+ {}
+
+ /// Move assignment operator
+ split_interval_set& operator = (BOOST_RV_REF(split_interval_set) src)
+ {
+ base_type::operator=(boost::move(static_cast<base_type&>(src)));
+ return *this;
     }
 
     

Modified: trunk/boost/icl/type_traits/is_discrete.hpp
==============================================================================
--- trunk/boost/icl/type_traits/is_discrete.hpp (original)
+++ trunk/boost/icl/type_traits/is_discrete.hpp 2011-12-25 14:14:24 EST (Sun, 25 Dec 2011)
@@ -50,7 +50,6 @@
                          <
                              has_rep_type<Type>
                            , is_discrete<typename rep_type_of<Type>::type>
- //CL , is_non_floating_point<typename rep_type_of<Type>::type>
>
>
>::value

Modified: trunk/libs/icl/test/Jamfile.v2
==============================================================================
--- trunk/libs/icl/test/Jamfile.v2 (original)
+++ trunk/libs/icl/test/Jamfile.v2 2011-12-25 14:14:24 EST (Sun, 25 Dec 2011)
@@ -82,7 +82,7 @@
       #[ run test_casual_/test_casual.cpp ]
 
 
- # ------------------------------------------------------------------------
+ # ========================================================================
       # Chrono -----------------------------------------------------------------
       # interval
       [ run fastest_icl_interval_/fastest_icl_interval.cpp

Modified: trunk/libs/icl/test/fastest_icl_interval_/fastest_icl_interval.cpp
==============================================================================
--- trunk/libs/icl/test/fastest_icl_interval_/fastest_icl_interval.cpp (original)
+++ trunk/libs/icl/test/fastest_icl_interval_/fastest_icl_interval.cpp 2011-12-25 14:14:24 EST (Sun, 25 Dec 2011)
@@ -40,34 +40,34 @@
 //= Traits
 //==============================================================================
 BOOST_AUTO_TEST_CASE
-(fastest_itl_discrete_interval_traits)
+(fastest_icl_discrete_interval_traits)
 { discrete_interval_traits<discrete_type_1, discrete_interval<discrete_type_1> >(); }
 
 //==============================================================================
 
 //- sta.asy.{dis|con} ----------------------------------------------------------
 BOOST_AUTO_TEST_CASE
-(fastest_itl_right_open_interval_ctor_4_ordered_types)
+(fastest_icl_right_open_interval_ctor_4_ordered_types)
 { interval_ctor_4_ordered_types<right_open_interval<ordered_type_1> >(); }
 
 BOOST_AUTO_TEST_CASE
-(fastest_itl_right_open_interval_4_ordered_types)
+(fastest_icl_right_open_interval_4_ordered_types)
 { singelizable_interval_4_ordered_types<right_open_interval<discrete_type_1> >(); }
 
 BOOST_AUTO_TEST_CASE
-(fastest_itl_right_open_interval_4_bicremental_types)
+(fastest_icl_right_open_interval_4_bicremental_types)
 { singelizable_interval_4_bicremental_types<right_open_interval<discrete_type_2> >(); }
 
 BOOST_AUTO_TEST_CASE
-(fastest_itl_left_open_interval_ctor_4_ordered_types)
+(fastest_icl_left_open_interval_ctor_4_ordered_types)
 { interval_ctor_4_ordered_types<left_open_interval<ordered_type_2> >(); }
 
 BOOST_AUTO_TEST_CASE
-(fastest_itl_left_open_interval_4_ordered_types_singelizable)
+(fastest_icl_left_open_interval_4_ordered_types_singelizable)
 { singelizable_interval_4_ordered_types<left_open_interval<signed_discrete_type_1> >(); }
 
 BOOST_AUTO_TEST_CASE
-(fastest_itl_left_open_interval_4_bicremental_types)
+(fastest_icl_left_open_interval_4_bicremental_types)
 { singelizable_interval_4_bicremental_types<left_open_interval<discrete_type_4> >(); }
 
 //- coverables -----------------------------------------------------------------
@@ -81,47 +81,47 @@
 
 //- dyn.dis --------------------------------------------------------------------
 BOOST_AUTO_TEST_CASE
-(fastest_itl_discrete_interval_ctor_4_discrete_types_base)
+(fastest_icl_discrete_interval_ctor_4_discrete_types_base)
 { interval_ctor_4_ordered_types<discrete_interval<discrete_type_1> >(); }
 
 BOOST_AUTO_TEST_CASE
-(fastest_itl_discrete_interval_ctor_4_discrete_types_dynamic)
+(fastest_icl_discrete_interval_ctor_4_discrete_types_dynamic)
 { dynamic_interval_ctor_4_ordered_types<discrete_interval<discrete_type_2> >(); }
 
 BOOST_AUTO_TEST_CASE
-(fastest_itl_discrete_interval_4_ordered_types)
+(fastest_icl_discrete_interval_4_ordered_types)
 { singelizable_interval_4_ordered_types<discrete_interval<discrete_type_3> >(); }
 
 BOOST_AUTO_TEST_CASE
-(fastest_itl_discrete_interval_4_bicremental_types)
+(fastest_icl_discrete_interval_4_bicremental_types)
 { singelizable_interval_4_bicremental_types<discrete_interval<discrete_type_3> >(); }
 
 //- dyn.con --------------------------------------------------------------------
 BOOST_AUTO_TEST_CASE
-(fastest_itl_continuous_interval_ctor_4_continuous_types_base)
+(fastest_icl_continuous_interval_ctor_4_continuous_types_base)
 { interval_ctor_4_ordered_types<continuous_interval<continuous_type_1> >(); }
 
 BOOST_AUTO_TEST_CASE
-(fastest_itl_continuous_interval_ctor_4_continuous_types_dynamic)
+(fastest_icl_continuous_interval_ctor_4_continuous_types_dynamic)
 { dynamic_interval_ctor_4_ordered_types<continuous_interval<continuous_type_2> >(); }
 
 BOOST_AUTO_TEST_CASE
-(fastest_itl_continuous_interval_4_continuous_types_singelizable)
+(fastest_icl_continuous_interval_4_continuous_types_singelizable)
 { singelizable_interval_4_ordered_types<continuous_interval<continuous_type_3> >(); }
 
 //------------------------------------------------------------------------------
 
 BOOST_AUTO_TEST_CASE
-(fastest_itl_distant_intervals_4_discrete_types)
+(fastest_icl_distant_intervals_4_discrete_types)
 { distant_intervals_4_discrete_types<discrete_type_1, std::less>(); }
 
 BOOST_AUTO_TEST_CASE
-(fastest_itl_distant_intervals_4_numeric_continuous_types)
+(fastest_icl_distant_intervals_4_numeric_continuous_types)
 { distant_intervals_4_numeric_continuous_types<numeric_continuous_type_1, std::less>(); }
 
 //------------------------------------------------------------------------------
 BOOST_AUTO_TEST_CASE
-(fastest_itl_dynamic_interval_bounds_4_bicremental_types)
+(fastest_icl_dynamic_interval_bounds_4_bicremental_types)
 { dynamic_interval_bounds_4_bicremental_types<bicremental_type_2>(); }
 
 //==============================================================================

Modified: trunk/libs/icl/test/fastest_icl_map_/fastest_icl_map_cases.hpp
==============================================================================
--- trunk/libs/icl/test/fastest_icl_map_/fastest_icl_map_cases.hpp (original)
+++ trunk/libs/icl/test/fastest_icl_map_/fastest_icl_map_cases.hpp 2011-12-25 14:14:24 EST (Sun, 25 Dec 2011)
@@ -9,11 +9,15 @@
 #define BOOST_ICL_TEST_ICL_MAP_CASES_HPP_JOFA_090701
 
 BOOST_AUTO_TEST_CASE
-(fastest_itl_itl_map_contains_4_bicremental_types)
-{ itl_map_contains_4_bicremental_types<discrete_type_1, int, partial_absorber, INTERVAL_MAP>();}
+(fastest_icl_icl_map_contains_4_bicremental_types)
+{ icl_map_contains_4_bicremental_types<discrete_type_1, int, partial_absorber, INTERVAL_MAP>();}
 
 BOOST_AUTO_TEST_CASE
-(fastest_itl_itl_map_find_4_bicremental_types)
-{ itl_map_find_4_bicremental_types<discrete_type_1, int, partial_absorber, INTERVAL_MAP>();}
+(fastest_icl_icl_map_find_4_bicremental_types)
+{ icl_map_find_4_bicremental_types<discrete_type_1, int, partial_absorber, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_icl_map_move_4_discrete_types)
+{ icl_map_move_4_discrete_types<discrete_type_1, int, partial_absorber, INTERVAL_MAP>();}
 
 #endif // BOOST_ICL_TEST_ICL_MAP_CASES_HPP_JOFA_090701

Modified: trunk/libs/icl/test/fastest_interval_map_cases.hpp
==============================================================================
--- trunk/libs/icl/test/fastest_interval_map_cases.hpp (original)
+++ trunk/libs/icl/test/fastest_interval_map_cases.hpp 2011-12-25 14:14:24 EST (Sun, 25 Dec 2011)
@@ -93,8 +93,8 @@
 { interval_map_intersects_4_bicremental_types<INTERVAL_MAP, bicremental_type_3, int>();}
 
 BOOST_AUTO_TEST_CASE
-(fastest_icl_interval_map_move_4_bicremental_types)
-{ interval_map_move_4_bicremental_types<INTERVAL_MAP, bicremental_type_1, double>();}
+(fastest_icl_interval_map_move_4_discrete_types)
+{ interval_map_move_4_discrete_types<INTERVAL_MAP, discrete_type_1, double>();}
 
 
 #endif // BOOST_ICL_FASTEST_INTERVAL_MAP_CASES_HPP_JOFA_090702

Modified: trunk/libs/icl/test/fastest_interval_map_mixed_/fastest_interval_map_mixed.cpp
==============================================================================
--- trunk/libs/icl/test/fastest_interval_map_mixed_/fastest_interval_map_mixed.cpp (original)
+++ trunk/libs/icl/test/fastest_interval_map_mixed_/fastest_interval_map_mixed.cpp 2011-12-25 14:14:24 EST (Sun, 25 Dec 2011)
@@ -54,10 +54,10 @@
 { interval_map_mixed_equal_4_bicremental_types<bicremental_type_3, int>(); }
 
 BOOST_AUTO_TEST_CASE
-(fastest_itl_partial_interval_map_mixed_inclusion_compare_4_bicremental_types)
+(fastest_icl_partial_interval_map_mixed_inclusion_compare_4_bicremental_types)
 { partial_interval_map_mixed_inclusion_compare_4_bicremental_types<bicremental_type_4, int, partial_absorber>(); }
 
 BOOST_AUTO_TEST_CASE
-(fastest_itl_partial_interval_map_mixed_contains_4_bicremental_types)
+(fastest_icl_partial_interval_map_mixed_contains_4_bicremental_types)
 { partial_interval_map_mixed_contains_4_bicremental_types<int, int, partial_absorber>(); }
 

Modified: trunk/libs/icl/test/fastest_interval_set_cases.hpp
==============================================================================
--- trunk/libs/icl/test/fastest_interval_set_cases.hpp (original)
+++ trunk/libs/icl/test/fastest_interval_set_cases.hpp 2011-12-25 14:14:24 EST (Sun, 25 Dec 2011)
@@ -68,6 +68,10 @@
 (fastest_icl_interval_set_range_4_discrete_types)
 { interval_set_range_4_discrete_types<INTERVAL_SET, discrete_type_3>();}
 
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_set_move_4_discrete_types)
+{ interval_set_move_4_discrete_types<INTERVAL_SET, discrete_type_2>();}
+
 #endif // BOOST_ICL_FASTEST_INTERVAL_SET_CASES_HPP_JOFA_090702
 
 

Modified: trunk/libs/icl/test/fastest_set_interval_set_/fastest_set_interval_set_cases.hpp
==============================================================================
--- trunk/libs/icl/test/fastest_set_interval_set_/fastest_set_interval_set_cases.hpp (original)
+++ trunk/libs/icl/test/fastest_set_interval_set_/fastest_set_interval_set_cases.hpp 2011-12-25 14:14:24 EST (Sun, 25 Dec 2011)
@@ -32,19 +32,19 @@
 // separate_interval_set
 //------------------------------------------------------------------------------
 BOOST_AUTO_TEST_CASE
-(fastest_itl_separate_interval_set_check_monoid_plus_4_bicremental_types)
+(fastest_icl_separate_interval_set_check_monoid_plus_4_bicremental_types)
 { interval_set_check_monoid_plus_4_bicremental_types<bicremental_type_5, separate_interval_set>();}
 
 BOOST_AUTO_TEST_CASE
-(fastest_itl_separate_interval_set_check_abelian_monoid_plus_4_bicremental_types)
+(fastest_icl_separate_interval_set_check_abelian_monoid_plus_4_bicremental_types)
 { interval_set_check_abelian_monoid_plus_4_bicremental_types<bicremental_type_6, separate_interval_set>();}
 
 BOOST_AUTO_TEST_CASE
-(fastest_itl_separate_interval_set_check_abelian_monoid_et_4_bicremental_types)
+(fastest_icl_separate_interval_set_check_abelian_monoid_et_4_bicremental_types)
 { interval_set_check_abelian_monoid_et_4_bicremental_types<bicremental_type_7, separate_interval_set>();}
 
 BOOST_AUTO_TEST_CASE
-(fastest_itl_separate_interval_set_check_partial_invertive_monoid_plus_4_bicremental_types)
+(fastest_icl_separate_interval_set_check_partial_invertive_monoid_plus_4_bicremental_types)
 { interval_set_check_partial_invertive_monoid_plus_4_bicremental_types<bicremental_type_8, separate_interval_set>();}
 
 
@@ -52,19 +52,19 @@
 // split_interval_set
 //------------------------------------------------------------------------------
 BOOST_AUTO_TEST_CASE
-(fastest_itl_split_interval_set_check_monoid_plus_4_bicremental_types)
+(fastest_icl_split_interval_set_check_monoid_plus_4_bicremental_types)
 { interval_set_check_monoid_plus_4_bicremental_types<bicremental_type_1, split_interval_set>();}
 
 BOOST_AUTO_TEST_CASE
-(fastest_itl_split_interval_set_check_abelian_monoid_plus_4_bicremental_types)
+(fastest_icl_split_interval_set_check_abelian_monoid_plus_4_bicremental_types)
 { interval_set_check_abelian_monoid_plus_4_bicremental_types<bicremental_type_2, split_interval_set>();}
 
 BOOST_AUTO_TEST_CASE
-(fastest_itl_split_interval_set_check_abelian_monoid_et_4_bicremental_types)
+(fastest_icl_split_interval_set_check_abelian_monoid_et_4_bicremental_types)
 { interval_set_check_abelian_monoid_et_4_bicremental_types<bicremental_type_3, split_interval_set>();}
 
 BOOST_AUTO_TEST_CASE
-(fastest_itl_split_interval_set_check_partial_invertive_monoid_plus_4_bicremental_types)
+(fastest_icl_split_interval_set_check_partial_invertive_monoid_plus_4_bicremental_types)
 { interval_set_check_partial_invertive_monoid_plus_4_bicremental_types<bicremental_type_4, split_interval_set>();}
 
 
@@ -76,11 +76,11 @@
 { interval_set_check_containedness_4_bicremental_types<bicremental_type_4, interval_set>();}
 
 BOOST_AUTO_TEST_CASE
-(fastest_itl_split_interval_set_check_containedness_4_bicremental_types)
+(fastest_icl_split_interval_set_check_containedness_4_bicremental_types)
 { interval_set_check_containedness_4_bicremental_types<bicremental_type_5, split_interval_set>();}
 
 BOOST_AUTO_TEST_CASE
-(fastest_itl_separate_interval_set_check_containedness_4_bicremental_types)
+(fastest_icl_separate_interval_set_check_containedness_4_bicremental_types)
 { interval_set_check_containedness_4_bicremental_types<bicremental_type_6, separate_interval_set>();}
 
 //------------------------------------------------------------------------------
@@ -91,11 +91,11 @@
 { interval_set_check_inner_complementarity_4_bicremental_types<bicremental_type_7, interval_set>();}
 
 BOOST_AUTO_TEST_CASE
-(fastest_itl_separate_interval_set_check_inner_complementarity_4_bicremental_types)
+(fastest_icl_separate_interval_set_check_inner_complementarity_4_bicremental_types)
 { interval_set_check_inner_complementarity_4_bicremental_types<bicremental_type_8, separate_interval_set>();}
 
 BOOST_AUTO_TEST_CASE
-(fastest_itl_split_interval_set_check_inner_complementarity_4_bicremental_types)
+(fastest_icl_split_interval_set_check_inner_complementarity_4_bicremental_types)
 { interval_set_check_inner_complementarity_4_bicremental_types<bicremental_type_1, split_interval_set>();}
 
 //------------------------------------------------------------------------------
@@ -106,11 +106,11 @@
 { interval_set_check_length_complementarity_4_bicremental_types<bicremental_type_2, interval_set>();}
 
 BOOST_AUTO_TEST_CASE
-(fastest_itl_separate_interval_set_check_length_complementarity_4_bicremental_types)
+(fastest_icl_separate_interval_set_check_length_complementarity_4_bicremental_types)
 { interval_set_check_length_complementarity_4_bicremental_types<bicremental_type_3, separate_interval_set>();}
 
 BOOST_AUTO_TEST_CASE
-(fastest_itl_split_interval_set_check_length_complementarity_4_bicremental_types)
+(fastest_icl_split_interval_set_check_length_complementarity_4_bicremental_types)
 { interval_set_check_length_complementarity_4_bicremental_types<bicremental_type_4, split_interval_set>();}
 
 #endif // BOOST_ICL_FASTEST_SET_INTERVAL_SET_CASES_HPP_JOFA_090703

Modified: trunk/libs/icl/test/test_combinable_/test_combinable.cpp
==============================================================================
--- trunk/libs/icl/test/test_combinable_/test_combinable.cpp (original)
+++ trunk/libs/icl/test/test_combinable_/test_combinable.cpp 2011-12-25 14:14:24 EST (Sun, 25 Dec 2011)
@@ -204,7 +204,7 @@
 }
 
 
-BOOST_AUTO_TEST_CASE(test_itl_is_derivative)
+BOOST_AUTO_TEST_CASE(test_icl_is_derivative)
 {
     //--------------------------------------------------------------------------
     // 1.1
@@ -243,7 +243,7 @@
         );
 }
 
-BOOST_AUTO_TEST_CASE(test_itl_is_combinable)
+BOOST_AUTO_TEST_CASE(test_icl_is_combinable)
 {
     //--------------------------------------------------------------------------
     // 2.1
@@ -283,7 +283,7 @@
 
 }
 
-BOOST_AUTO_TEST_CASE(test_itl_is_container_right_combinable)
+BOOST_AUTO_TEST_CASE(test_icl_is_container_right_combinable)
 {
     //--------------------------------------------------------------------------
     // 3.1
@@ -338,7 +338,7 @@
 
 }
 
-BOOST_AUTO_TEST_CASE(test_itl_is_right_combinable)
+BOOST_AUTO_TEST_CASE(test_icl_is_right_combinable)
 {
     //--------------------------------------------------------------------------
     // 4.1
@@ -365,7 +365,7 @@
         );
 }
 
-BOOST_AUTO_TEST_CASE(test_itl_combines_right_to)
+BOOST_AUTO_TEST_CASE(test_icl_combines_right_to)
 {
     //--------------------------------------------------------------------------
     // 5.1
@@ -404,7 +404,7 @@
         );
 }
 
-BOOST_AUTO_TEST_CASE(test_itl_is_companion)
+BOOST_AUTO_TEST_CASE(test_icl_is_companion)
 {
     //--------------------------------------------------------------------------
     // 6.1
@@ -431,7 +431,7 @@
         );
 }
 
-BOOST_AUTO_TEST_CASE(test_itl_is_coarser_combinable)
+BOOST_AUTO_TEST_CASE(test_icl_is_coarser_combinable)
 {
     //--------------------------------------------------------------------------
     // 7.1
@@ -486,7 +486,7 @@
         );
 }
 
-BOOST_AUTO_TEST_CASE(test_itl_is_binary_combinable)
+BOOST_AUTO_TEST_CASE(test_icl_is_binary_combinable)
 {
     //--------------------------------------------------------------------------
     // 9.1

Modified: trunk/libs/icl/test/test_icl_map.hpp
==============================================================================
--- trunk/libs/icl/test/test_icl_map.hpp (original)
+++ trunk/libs/icl/test/test_icl_map.hpp 2011-12-25 14:14:24 EST (Sun, 25 Dec 2011)
@@ -19,7 +19,7 @@
     ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap
 #endif
>
-void itl_map_contains_4_bicremental_types()
+void icl_map_contains_4_bicremental_types()
 {
     typedef IntervalMap<T,U,Trt> IntervalMapT;
     typedef icl::map<T,U,Trt> MapT;
@@ -39,25 +39,6 @@
     BOOST_CHECK( contains(map_a, key_value_pair) );
     BOOST_CHECK( within(key_value_pair, map_a) );
 
- //found = map_a.find(MK_v(5));
-
- //BOOST_CHECK_EQUAL( found == map_a.end(), true );
- //BOOST_CHECK_EQUAL( map_a(MK_v(5)), MK_u(0) );
-
-# ifdef BOOST_ICL_IS_MOVE_AWARE
-
- cout << ">"; //JODO
- MapT map_b(boost::move(MapT().add(key_value_pair)));
- cout << "<\n";
- cout << map_b << endl;
-
- cout << ">";
- MapT map_c;
- map_c = boost::move(MapT().add(key_value_pair));
- cout << "<\n";
- cout << map_c << endl;
-
-# endif //BOOST_ICL_IS_MOVE_AWARE
 }
 
 
@@ -70,7 +51,7 @@
     ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap
 #endif
>
-void itl_map_find_4_bicremental_types()
+void icl_map_find_4_bicremental_types()
 {
     typedef IntervalMap<T,U,Trt> IntervalMapT;
     typedef icl::map<T,U,Trt> MapT;
@@ -102,7 +83,7 @@
     ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap
 #endif
>
-void itl_map_inclusion_compare_4_bicremental_types()
+void icl_map_inclusion_compare_4_bicremental_types()
 {
     typedef IntervalMap<T,U,Trt> IntervalMapT;
     typedef icl::map<T,U,Trt> MapT;
@@ -168,5 +149,38 @@
 }
 
 
+template
+<
+ class T, class U, class Trt,
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,Trt) IntervalMap
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap
+#endif
+>
+void icl_map_move_4_discrete_types()
+{
+ typedef icl::map<T,U,Trt> MapT;
+ typedef typename MapT::element_type map_element_type;
+
+ map_element_type kv_6_3(MK_v(6), MK_u(3));
+
+ MapT map_b;
+ map_b.add(kv_6_3);
+ MapT mv_cons_1(boost::move(MapT().add(kv_6_3)));
+ MapT cp_cons_1(map_b);
+
+ BOOST_CHECK_EQUAL( mv_cons_1, cp_cons_1 );
+ BOOST_CHECK_EQUAL( map_b, cp_cons_1 );
+
+ MapT mv_ass_1, cp_ass_1;
+ mv_ass_1 = boost::move(MapT().add(kv_6_3));
+ cp_ass_1 = map_b;
+
+ BOOST_CHECK_EQUAL( mv_ass_1, cp_ass_1 );
+ BOOST_CHECK_EQUAL( map_b, cp_ass_1 );
+}
+
+
 #endif // LIBS_ICL_TEST_TEST_ICL_MAP_HPP_JOFA_090119
 

Modified: trunk/libs/icl/test/test_interval_map_shared.hpp
==============================================================================
--- trunk/libs/icl/test/test_interval_map_shared.hpp (original)
+++ trunk/libs/icl/test/test_interval_map_shared.hpp 2011-12-25 14:14:24 EST (Sun, 25 Dec 2011)
@@ -1525,25 +1525,24 @@
 #endif
     class T, class U
>
-void interval_map_move_4_bicremental_types()
+void interval_map_move_4_discrete_types()
 {
     typedef IntervalMap<T,U> IntervalMapT;
     typedef typename IntervalMapT::interval_type IntervalT;
 
-# ifdef BOOST_ICL_IS_MOVE_AWARE
     IntervalMapT map_A(boost::move(static_cast<IntervalMapT&>(IntervalMapT(IDv(0,4,2)))));
     IntervalMapT map_B(boost::move(static_cast<IntervalMapT&>(IntervalMapT(IDv(0,2,1)).add(IDv(2,4,1)).add(IDv(0,4,1)))));
 
- BOOST_CHECK_EQUAL( map_A, map_B );
+ BOOST_CHECK( icl::is_element_equal(map_A, map_B) );
+ BOOST_CHECK_EQUAL( map_A, join(map_B) );
 
- map_A = boost::move(static_cast<IntervalMapT&>(IntervalMapT(IIv(1,4,2)))); //JODO not yet moving
+ map_A = boost::move(static_cast<IntervalMapT&>(IntervalMapT(IIv(1,4,2))));
     map_B = boost::move(static_cast<IntervalMapT&>(IntervalMapT(CIv(0,2,1)).insert(IDv(3,5,1)).add(CDv(0,5,1))));
 
- BOOST_CHECK_EQUAL( map_A, map_B );
-# endif //BOOST_ICL_IS_MOVE_AWARE
+ BOOST_CHECK( icl::is_element_equal(map_A, map_B) );
+ BOOST_CHECK_EQUAL( map_A, join(map_B) );
 }
 
 
-
 #endif // LIBS_ICL_TEST_TEST_INTERVAL_MAP_SHARED_HPP_JOFA_081005
 

Modified: trunk/libs/icl/test/test_interval_set_shared.hpp
==============================================================================
--- trunk/libs/icl/test/test_interval_set_shared.hpp (original)
+++ trunk/libs/icl/test/test_interval_set_shared.hpp 2011-12-25 14:14:24 EST (Sun, 25 Dec 2011)
@@ -819,5 +819,28 @@
     BOOST_CHECK_EQUAL( vec == dest, true );
 }
 
+
+template <ICL_IntervalSet_TEMPLATE(_T) IntervalSet, class T>
+void interval_set_move_4_discrete_types()
+{
+ typedef IntervalSet<T> IntervalSetT;
+ typedef typename IntervalSetT::interval_type IntervalT;
+ typedef std::vector<T> VectorT;
+
+ IntervalSetT set_A(boost::move(static_cast<IntervalSetT&>(IntervalSetT(I_D(0,4)))));
+ IntervalSetT set_B(boost::move(static_cast<IntervalSetT&>(IntervalSetT(I_D(0,2)).add(I_D(2,4)).add(I_D(0,4)))));
+
+ BOOST_CHECK( icl::is_element_equal(set_A, set_B) );
+ BOOST_CHECK_EQUAL( set_A, join(set_B) );
+
+ set_A = boost::move(static_cast<IntervalSetT&>(IntervalSetT(I_I(1,4))));
+ set_B = boost::move(static_cast<IntervalSetT&>(IntervalSetT(C_I(0,2)).insert(I_D(3,5)).add(C_D(0,5))));
+
+ BOOST_CHECK( icl::is_element_equal(set_A, set_B) );
+ BOOST_CHECK_EQUAL( set_A, join(set_B) );
+}
+
+
+
 #endif // LIBS_ICL_TEST_TEST_INTERVAL_SET_SHARED_HPP_JOFA_080920
 

Modified: trunk/libs/icl/test/test_type_traits_/test_type_traits.cpp
==============================================================================
--- trunk/libs/icl/test/test_type_traits_/test_type_traits.cpp (original)
+++ trunk/libs/icl/test/test_type_traits_/test_type_traits.cpp 2011-12-25 14:14:24 EST (Sun, 25 Dec 2011)
@@ -82,7 +82,7 @@
     BOOST_CHECK((!is_key_container_of<int, icl::map<int,int> >::value));
     BOOST_CHECK((!is_key_container_of<std::pair<int,int> , icl::map<int,int> >::value));
     BOOST_CHECK(( is_key_container_of<std::set<int>, std::set<int> >::value));
- BOOST_CHECK(( is_key_container_of<std::set<int>, icl::map<int,int> >::value));
+ BOOST_CHECK(( is_key_container_of<ICL_IMPL_SPACE::set<int>, icl::map<int,int> >::value));
     BOOST_CHECK(( is_key_container_of<icl::map<int,int>, icl::map<int,int> >::value));
 }
 
@@ -91,6 +91,10 @@
     BOOST_CHECK( (is_set<std::set<int> >::value) );
     BOOST_CHECK( (is_element_set<std::set<int> >::value) );
     BOOST_CHECK( (!is_map<std::set<int> >::value) );
+
+ BOOST_CHECK( (is_set<ICL_IMPL_SPACE::set<int> >::value) );
+ BOOST_CHECK( (is_element_set<ICL_IMPL_SPACE::set<int> >::value) );
+ BOOST_CHECK( (!is_map<ICL_IMPL_SPACE::set<int> >::value) );
 }
 
 BOOST_AUTO_TEST_CASE(test_miscellaneous_type_traits)

Modified: trunk/libs/icl/test/vc9_icl_fast_tests.sln
==============================================================================
--- trunk/libs/icl/test/vc9_icl_fast_tests.sln (original)
+++ trunk/libs/icl/test/vc9_icl_fast_tests.sln 2011-12-25 14:14:24 EST (Sun, 25 Dec 2011)
@@ -70,149 +70,141 @@
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_fix_tickets", "fix_tickets_\vc9_fix_tickets.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B8D9A9FA1}"
 EndProject
 Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Win32 = Debug|Win32
- Release|Win32 = Release|Win32
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {EE61B7EF-EC45-4165-8B49-FD5B7D2A900D}.Debug|Win32.ActiveCfg = Debug|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B7D2A900D}.Debug|Win32.Build.0 = Debug|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B7D2A900D}.Release|Win32.ActiveCfg = Release|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B7D2A900D}.Release|Win32.Build.0 = Release|Win32
- {0FBD7F60-6470-41BB-8F8C-F47E9765C011}.Debug|Win32.ActiveCfg = Debug|Win32
- {0FBD7F60-6470-41BB-8F8C-F47E9765C011}.Debug|Win32.Build.0 = Debug|Win32
- {0FBD7F60-6470-41BB-8F8C-F47E9765C011}.Release|Win32.ActiveCfg = Release|Win32
- {0FBD7F60-6470-41BB-8F8C-F47E9765C011}.Release|Win32.Build.0 = Release|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B8D5A902F}.Debug|Win32.ActiveCfg = Debug|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B8D5A902F}.Debug|Win32.Build.0 = Debug|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B8D5A902F}.Release|Win32.ActiveCfg = Release|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B8D5A902F}.Release|Win32.Build.0 = Release|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B8D3B903F}.Debug|Win32.ActiveCfg = Debug|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B8D3B903F}.Debug|Win32.Build.0 = Debug|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B8D3B903F}.Release|Win32.ActiveCfg = Release|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B8D3B903F}.Release|Win32.Build.0 = Release|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B7D2A905C}.Debug|Win32.ActiveCfg = Debug|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B7D2A905C}.Debug|Win32.Build.0 = Debug|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B7D2A905C}.Release|Win32.ActiveCfg = Release|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B7D2A905C}.Release|Win32.Build.0 = Release|Win32
- {EE61B7EF-EC45-4165-8B4B-FD5B7D2A917F}.Debug|Win32.ActiveCfg = Debug|Win32
- {EE61B7EF-EC45-4165-8B4B-FD5B7D2A917F}.Debug|Win32.Build.0 = Debug|Win32
- {EE61B7EF-EC45-4165-8B4B-FD5B7D2A917F}.Release|Win32.ActiveCfg = Release|Win32
- {EE61B7EF-EC45-4165-8B4B-FD5B7D2A917F}.Release|Win32.Build.0 = Release|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B7D2A908C}.Debug|Win32.ActiveCfg = Debug|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B7D2A908C}.Debug|Win32.Build.0 = Debug|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B7D2A908C}.Release|Win32.ActiveCfg = Release|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B7D2A908C}.Release|Win32.Build.0 = Release|Win32
- {A731623C-94BC-4666-A419-35D1623E906E}.Debug|Win32.ActiveCfg = Debug|Win32
- {A731623C-94BC-4666-A419-35D1623E906E}.Debug|Win32.Build.0 = Debug|Win32
- {A731623C-94BC-4666-A419-35D1623E906E}.Release|Win32.ActiveCfg = Release|Win32
- {A731623C-94BC-4666-A419-35D1623E906E}.Release|Win32.Build.0 = Release|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B8D3A907E}.Debug|Win32.ActiveCfg = Debug|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B8D3A907E}.Debug|Win32.Build.0 = Debug|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B8D3A907E}.Release|Win32.ActiveCfg = Release|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B8D3A907E}.Release|Win32.Build.0 = Release|Win32
- {DD9C9854-3882-42B9-BFA1-C6CEBFCE309B}.Debug|Win32.ActiveCfg = Debug|Win32
- {DD9C9854-3882-42B9-BFA1-C6CEBFCE309B}.Debug|Win32.Build.0 = Debug|Win32
- {DD9C9854-3882-42B9-BFA1-C6CEBFCE309B}.Release|Win32.ActiveCfg = Release|Win32
- {DD9C9854-3882-42B9-BFA1-C6CEBFCE309B}.Release|Win32.Build.0 = Release|Win32
- {EE61B7EF-EC45-4165-8B4A-FD5B7D2A909F}.Debug|Win32.ActiveCfg = Debug|Win32
- {EE61B7EF-EC45-4165-8B4A-FD5B7D2A909F}.Debug|Win32.Build.0 = Debug|Win32
- {EE61B7EF-EC45-4165-8B4A-FD5B7D2A909F}.Release|Win32.ActiveCfg = Release|Win32
- {EE61B7EF-EC45-4165-8B4A-FD5B7D2A909F}.Release|Win32.Build.0 = Release|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B7D3A910C}.Debug|Win32.ActiveCfg = Debug|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B7D3A910C}.Debug|Win32.Build.0 = Debug|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B7D3A910C}.Release|Win32.ActiveCfg = Release|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B7D3A910C}.Release|Win32.Build.0 = Release|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B8D3A9FA0}.Debug|Win32.ActiveCfg = Debug|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B8D3A9FA0}.Debug|Win32.Build.0 = Debug|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B8D3A9FA0}.Release|Win32.ActiveCfg = Release|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B8D3A9FA0}.Release|Win32.Build.0 = Release|Win32
- {A731623C-94BC-4666-A419-35D2623E911E}.Debug|Win32.ActiveCfg = Debug|Win32
- {A731623C-94BC-4666-A419-35D2623E911E}.Debug|Win32.Build.0 = Debug|Win32
- {A731623C-94BC-4666-A419-35D2623E911E}.Release|Win32.ActiveCfg = Release|Win32
- {A731623C-94BC-4666-A419-35D2623E911E}.Release|Win32.Build.0 = Release|Win32
- {DD9C9854-3882-42B9-BFA1-C6CEBFCE3129}.Debug|Win32.ActiveCfg = Debug|Win32
- {DD9C9854-3882-42B9-BFA1-C6CEBFCE3129}.Debug|Win32.Build.0 = Debug|Win32
- {DD9C9854-3882-42B9-BFA1-C6CEBFCE3129}.Release|Win32.ActiveCfg = Release|Win32
- {DD9C9854-3882-42B9-BFA1-C6CEBFCE3129}.Release|Win32.Build.0 = Release|Win32
- {33577D13-D562-4E3F-89F2-A8885151D13F}.Debug|Win32.ActiveCfg = Debug|Win32
- {33577D13-D562-4E3F-89F2-A8885151D13F}.Debug|Win32.Build.0 = Debug|Win32
- {33577D13-D562-4E3F-89F2-A8885151D13F}.Release|Win32.ActiveCfg = Release|Win32
- {33577D13-D562-4E3F-89F2-A8885151D13F}.Release|Win32.Build.0 = Release|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B7D2A913E}.Debug|Win32.ActiveCfg = Debug|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B7D2A913E}.Debug|Win32.Build.0 = Debug|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B7D2A913E}.Release|Win32.ActiveCfg = Release|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B7D2A913E}.Release|Win32.Build.0 = Release|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B7D4A915C}.Debug|Win32.ActiveCfg = Debug|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B7D4A915C}.Debug|Win32.Build.0 = Debug|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B7D4A915C}.Release|Win32.ActiveCfg = Release|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B7D4A915C}.Release|Win32.Build.0 = Release|Win32
- {EE61B7EF-EC45-4165-8B4A-FD5B7D3A909F}.Debug|Win32.ActiveCfg = Debug|Win32
- {EE61B7EF-EC45-4165-8B4A-FD5B7D3A909F}.Debug|Win32.Build.0 = Debug|Win32
- {EE61B7EF-EC45-4165-8B4A-FD5B7D3A909F}.Release|Win32.ActiveCfg = Release|Win32
- {EE61B7EF-EC45-4165-8B4A-FD5B7D3A909F}.Release|Win32.Build.0 = Release|Win32
- {EE61B7EF-EC45-4165-8B4B-FD5B7D4A917F}.Debug|Win32.ActiveCfg = Debug|Win32
- {EE61B7EF-EC45-4165-8B4B-FD5B7D4A917F}.Debug|Win32.Build.0 = Debug|Win32
- {EE61B7EF-EC45-4165-8B4B-FD5B7D4A917F}.Release|Win32.ActiveCfg = Release|Win32
- {EE61B7EF-EC45-4165-8B4B-FD5B7D4A917F}.Release|Win32.Build.0 = Release|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B8D3A904F}.Debug|Win32.ActiveCfg = Debug|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B8D3A904F}.Debug|Win32.Build.0 = Debug|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B8D3A904F}.Release|Win32.ActiveCfg = Release|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B8D3A904F}.Release|Win32.Build.0 = Release|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B8D3A9FA1}.Debug|Win32.ActiveCfg = Debug|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B8D3A9FA1}.Debug|Win32.Build.0 = Debug|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B8D3A9FA1}.Release|Win32.ActiveCfg = Release|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B8D3A9FA1}.Release|Win32.Build.0 = Release|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B8D4A9FA0}.Debug|Win32.ActiveCfg = Debug|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B8D4A9FA0}.Debug|Win32.Build.0 = Debug|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B8D4A9FA0}.Release|Win32.ActiveCfg = Release|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B8D4A9FA0}.Release|Win32.Build.0 = Release|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B8D5A9FA0}.Debug|Win32.ActiveCfg = Debug|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B8D5A9FA0}.Debug|Win32.Build.0 = Debug|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B8D5A9FA0}.Release|Win32.ActiveCfg = Release|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B8D5A9FA0}.Release|Win32.Build.0 = Release|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B8D6A9FA0}.Debug|Win32.ActiveCfg = Debug|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B8D6A9FA0}.Debug|Win32.Build.0 = Debug|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B8D6A9FA0}.Release|Win32.ActiveCfg = Release|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B8D6A9FA0}.Release|Win32.Build.0 = Release|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B8D8A9FA0}.Debug|Win32.ActiveCfg = Debug|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B8D8A9FA0}.Debug|Win32.Build.0 = Debug|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B8D8A9FA0}.Release|Win32.ActiveCfg = Release|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B8D8A9FA0}.Release|Win32.Build.0 = Release|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B8D7A9FA0}.Debug|Win32.ActiveCfg = Debug|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B8D7A9FA0}.Debug|Win32.Build.0 = Debug|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B8D7A9FA0}.Release|Win32.ActiveCfg = Release|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B8D7A9FA0}.Release|Win32.Build.0 = Release|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B8D9A9FA0}.Debug|Win32.ActiveCfg = Debug|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B8D9A9FA0}.Debug|Win32.Build.0 = Debug|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B8D9A9FA0}.Release|Win32.ActiveCfg = Release|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B8D9A9FA0}.Release|Win32.Build.0 = Release|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B8D7A9FA1}.Debug|Win32.ActiveCfg = Debug|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B8D7A9FA1}.Debug|Win32.Build.0 = Debug|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B8D7A9FA1}.Release|Win32.ActiveCfg = Release|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B8D7A9FA1}.Release|Win32.Build.0 = Release|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B8D7A9FA2}.Debug|Win32.ActiveCfg = Debug|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B8D7A9FA2}.Debug|Win32.Build.0 = Debug|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B8D7A9FA2}.Release|Win32.ActiveCfg = Release|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B8D7A9FA2}.Release|Win32.Build.0 = Release|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B8D7A9FA3}.Debug|Win32.ActiveCfg = Debug|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B8D7A9FA3}.Debug|Win32.Build.0 = Debug|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B8D7A9FA3}.Release|Win32.ActiveCfg = Release|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B8D7A9FA3}.Release|Win32.Build.0 = Release|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B8DAA9FA0}.Debug|Win32.ActiveCfg = Debug|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B8DAA9FA0}.Debug|Win32.Build.0 = Debug|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B8DAA9FA0}.Release|Win32.ActiveCfg = Release|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B8DAA9FA0}.Release|Win32.Build.0 = Release|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B7D3A900D}.Debug|Win32.ActiveCfg = Debug|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B7D3A900D}.Debug|Win32.Build.0 = Debug|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B7D3A900D}.Release|Win32.ActiveCfg = Release|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B7D3A900D}.Release|Win32.Build.0 = Release|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B8D9A9FA1}.Debug|Win32.ActiveCfg = Debug|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B8D9A9FA1}.Debug|Win32.Build.0 = Debug|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B8D9A9FA1}.Release|Win32.ActiveCfg = Release|Win32
- {EE61B7EF-EC45-4165-8B49-FD5B8D9A9FA1}.Release|Win32.Build.0 = Release|Win32
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ Release|Win32 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {EE61B7EF-EC45-4165-8B49-FD5B7D2A900D}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D2A900D}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D2A900D}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D2A900D}.Release|Win32.Build.0 = Release|Win32
+ {0FBD7F60-6470-41BB-8F8C-F47E9765C011}.Debug|Win32.ActiveCfg = Debug|Win32
+ {0FBD7F60-6470-41BB-8F8C-F47E9765C011}.Debug|Win32.Build.0 = Debug|Win32
+ {0FBD7F60-6470-41BB-8F8C-F47E9765C011}.Release|Win32.ActiveCfg = Release|Win32
+ {0FBD7F60-6470-41BB-8F8C-F47E9765C011}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D5A902F}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D5A902F}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D5A902F}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D5A902F}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D3B903F}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D3B903F}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D3B903F}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D3B903F}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D2A905C}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D2A905C}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D2A905C}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D2A905C}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B4B-FD5B7D2A917F}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B4B-FD5B7D2A917F}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B4B-FD5B7D2A917F}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B4B-FD5B7D2A917F}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D2A908C}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D2A908C}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D2A908C}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D2A908C}.Release|Win32.Build.0 = Release|Win32
+ {A731623C-94BC-4666-A419-35D1623E906E}.Debug|Win32.ActiveCfg = Debug|Win32
+ {A731623C-94BC-4666-A419-35D1623E906E}.Debug|Win32.Build.0 = Debug|Win32
+ {A731623C-94BC-4666-A419-35D1623E906E}.Release|Win32.ActiveCfg = Release|Win32
+ {A731623C-94BC-4666-A419-35D1623E906E}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D3A907E}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D3A907E}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D3A907E}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D3A907E}.Release|Win32.Build.0 = Release|Win32
+ {DD9C9854-3882-42B9-BFA1-C6CEBFCE309B}.Debug|Win32.ActiveCfg = Debug|Win32
+ {DD9C9854-3882-42B9-BFA1-C6CEBFCE309B}.Debug|Win32.Build.0 = Debug|Win32
+ {DD9C9854-3882-42B9-BFA1-C6CEBFCE309B}.Release|Win32.ActiveCfg = Release|Win32
+ {DD9C9854-3882-42B9-BFA1-C6CEBFCE309B}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B4A-FD5B7D2A909F}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B4A-FD5B7D2A909F}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B4A-FD5B7D2A909F}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B4A-FD5B7D2A909F}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D3A910C}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D3A910C}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D3A910C}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D3A910C}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D3A9FA0}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D3A9FA0}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D3A9FA0}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D3A9FA0}.Release|Win32.Build.0 = Release|Win32
+ {A731623C-94BC-4666-A419-35D2623E911E}.Debug|Win32.ActiveCfg = Debug|Win32
+ {A731623C-94BC-4666-A419-35D2623E911E}.Debug|Win32.Build.0 = Debug|Win32
+ {A731623C-94BC-4666-A419-35D2623E911E}.Release|Win32.ActiveCfg = Release|Win32
+ {A731623C-94BC-4666-A419-35D2623E911E}.Release|Win32.Build.0 = Release|Win32
+ {DD9C9854-3882-42B9-BFA1-C6CEBFCE3129}.Debug|Win32.ActiveCfg = Debug|Win32
+ {DD9C9854-3882-42B9-BFA1-C6CEBFCE3129}.Debug|Win32.Build.0 = Debug|Win32
+ {DD9C9854-3882-42B9-BFA1-C6CEBFCE3129}.Release|Win32.ActiveCfg = Release|Win32
+ {DD9C9854-3882-42B9-BFA1-C6CEBFCE3129}.Release|Win32.Build.0 = Release|Win32
+ {33577D13-D562-4E3F-89F2-A8885151D13F}.Debug|Win32.ActiveCfg = Debug|Win32
+ {33577D13-D562-4E3F-89F2-A8885151D13F}.Debug|Win32.Build.0 = Debug|Win32
+ {33577D13-D562-4E3F-89F2-A8885151D13F}.Release|Win32.ActiveCfg = Release|Win32
+ {33577D13-D562-4E3F-89F2-A8885151D13F}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D2A913E}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D2A913E}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D2A913E}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D2A913E}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D4A915C}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D4A915C}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D4A915C}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D4A915C}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B4A-FD5B7D3A909F}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B4A-FD5B7D3A909F}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B4A-FD5B7D3A909F}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B4A-FD5B7D3A909F}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B4B-FD5B7D4A917F}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B4B-FD5B7D4A917F}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B4B-FD5B7D4A917F}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B4B-FD5B7D4A917F}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D3A904F}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D3A904F}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D3A904F}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D3A904F}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D3A9FA1}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D3A9FA1}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D3A9FA1}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D3A9FA1}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D4A9FA0}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D4A9FA0}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D4A9FA0}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D4A9FA0}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D5A9FA0}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D5A9FA0}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D5A9FA0}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D5A9FA0}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D6A9FA0}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D6A9FA0}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D6A9FA0}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D6A9FA0}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D8A9FA0}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D8A9FA0}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D8A9FA0}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D8A9FA0}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D7A9FA0}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D7A9FA0}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D7A9FA0}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D7A9FA0}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D9A9FA0}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D9A9FA0}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D9A9FA0}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D9A9FA0}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D7A9FA2}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D7A9FA2}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D7A9FA2}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D7A9FA2}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D7A9FA3}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D7A9FA3}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D7A9FA3}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D7A9FA3}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D3A900D}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D3A900D}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D3A900D}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D3A900D}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D9A9FA1}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D9A9FA1}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D9A9FA1}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D9A9FA1}.Release|Win32.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
 EndGlobal


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