Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r82292 - in branches/release/boost/icl: . concept detail
From: afojgo_at_[hidden]
Date: 2012-12-30 20:17:32


Author: jofaber
Date: 2012-12-30 20:17:30 EST (Sun, 30 Dec 2012)
New Revision: 82292
URL: http://svn.boost.org/trac/boost/changeset/82292

Log:
Merged changes (81303-82287): Fixed ticket #7231. Switched off move semantics for clang and gcc > 4.6 due to compile problems.
Properties modified:
   branches/release/boost/icl/ (props changed)
Text files modified:
   branches/release/boost/icl/concept/element_map.hpp | 1
   branches/release/boost/icl/concept/interval_associator.hpp | 78 ++++++++++++++++++++--------------------
   branches/release/boost/icl/detail/set_algo.hpp | 3 -
   branches/release/boost/icl/impl_config.hpp | 15 +++++++
   branches/release/boost/icl/interval_base_map.hpp | 4 +-
   branches/release/boost/icl/interval_base_set.hpp | 4 +-
   branches/release/boost/icl/interval_map.hpp | 13 +++++-
   branches/release/boost/icl/interval_set.hpp | 11 ++++-
   branches/release/boost/icl/map.hpp | 6 +-
   branches/release/boost/icl/separate_interval_set.hpp | 11 ++++-
   branches/release/boost/icl/set.hpp | 6 +--
   branches/release/boost/icl/split_interval_map.hpp | 15 +++++--
   branches/release/boost/icl/split_interval_set.hpp | 11 ++++-
   13 files changed, 112 insertions(+), 66 deletions(-)

Modified: branches/release/boost/icl/concept/element_map.hpp
==============================================================================
--- branches/release/boost/icl/concept/element_map.hpp (original)
+++ branches/release/boost/icl/concept/element_map.hpp 2012-12-30 20:17:30 EST (Sun, 30 Dec 2012)
@@ -11,6 +11,7 @@
 #include <boost/mpl/and.hpp>
 #include <boost/mpl/not.hpp>
 #include <boost/icl/detail/on_absorbtion.hpp>
+#include <boost/icl/type_traits/unit_element.hpp>
 #include <boost/icl/type_traits/is_total.hpp>
 #include <boost/icl/type_traits/absorbs_identities.hpp>
 #include <boost/icl/type_traits/is_associative_element_container.hpp>

Modified: branches/release/boost/icl/concept/interval_associator.hpp
==============================================================================
--- branches/release/boost/icl/concept/interval_associator.hpp (original)
+++ branches/release/boost/icl/concept/interval_associator.hpp 2012-12-30 20:17:30 EST (Sun, 30 Dec 2012)
@@ -325,7 +325,7 @@
 }
 
 
-#ifdef BOOST_NO_RVALUE_REFERENCES
+#ifdef BOOST_ICL_NO_CXX11_RVALUE_REFERENCES
 //------------------------------------------------------------------------------
 //- T op + (T, c P&) T:{S}|{M} P:{e i S}|{b p M}
 //------------------------------------------------------------------------------
@@ -340,7 +340,7 @@
     return object += operand;
 }
 
-#else //BOOST_NO_RVALUE_REFERENCES
+#else //BOOST_ICL_NO_CXX11_RVALUE_REFERENCES
 
 template<class Type, class OperandT>
 typename enable_if<is_binary_intra_combinable<Type, OperandT>, Type>::type
@@ -357,9 +357,9 @@
     return boost::move(object += operand);
 }
 
-#endif //BOOST_NO_RVALUE_REFERENCES
+#endif //BOOST_ICL_NO_CXX11_RVALUE_REFERENCES
 
-#ifdef BOOST_NO_RVALUE_REFERENCES
+#ifdef BOOST_ICL_NO_CXX11_RVALUE_REFERENCES
 //------------------------------------------------------------------------------
 //- T op + (c P&, T) T:{S}|{M} P:{e i S'}|{b p M'}
 //------------------------------------------------------------------------------
@@ -374,7 +374,7 @@
     return object += operand;
 }
 
-#else //BOOST_NO_RVALUE_REFERENCES
+#else //BOOST_ICL_NO_CXX11_RVALUE_REFERENCES
 
 template<class Type, class OperandT>
 typename enable_if<is_binary_intra_combinable<Type, OperandT>, Type>::type
@@ -391,9 +391,9 @@
     return boost::move(object += operand);
 }
 
-#endif //BOOST_NO_RVALUE_REFERENCES
+#endif //BOOST_ICL_NO_CXX11_RVALUE_REFERENCES
 
-#ifdef BOOST_NO_RVALUE_REFERENCES
+#ifdef BOOST_ICL_NO_CXX11_RVALUE_REFERENCES
 //------------------------------------------------------------------------------
 //- T op + (T, c P&) T:{S}|{M} P:{S}|{M}
 //------------------------------------------------------------------------------
@@ -408,7 +408,7 @@
     return object += operand;
 }
 
-#else //BOOST_NO_RVALUE_REFERENCES
+#else //BOOST_ICL_NO_CXX11_RVALUE_REFERENCES
 
 template<class Type>
 typename enable_if<is_interval_container<Type>, Type>::type
@@ -439,7 +439,7 @@
     return boost::move(object += operand);
 }
 
-#endif //BOOST_NO_RVALUE_REFERENCES
+#endif //BOOST_ICL_NO_CXX11_RVALUE_REFERENCES
 
 //------------------------------------------------------------------------------
 //- Addition |=, |
@@ -477,7 +477,7 @@
     return object += operand;
 }
 
-#ifdef BOOST_NO_RVALUE_REFERENCES
+#ifdef BOOST_ICL_NO_CXX11_RVALUE_REFERENCES
 //------------------------------------------------------------------------------
 //- T op | (T, c P&) T:{S}|{M} P:{e i S}|{b p M}
 //------------------------------------------------------------------------------
@@ -492,7 +492,7 @@
     return object += operand;
 }
 
-#else //BOOST_NO_RVALUE_REFERENCES
+#else //BOOST_ICL_NO_CXX11_RVALUE_REFERENCES
 
 template<class Type, class OperandT>
 typename enable_if<is_binary_intra_combinable<Type, OperandT>, Type>::type
@@ -509,9 +509,9 @@
     return boost::move(object += operand);
 }
 
-#endif //BOOST_NO_RVALUE_REFERENCES
+#endif //BOOST_ICL_NO_CXX11_RVALUE_REFERENCES
 
-#ifdef BOOST_NO_RVALUE_REFERENCES
+#ifdef BOOST_ICL_NO_CXX11_RVALUE_REFERENCES
 //------------------------------------------------------------------------------
 //- T op | (T, c P&) T:{S}|{M} P:{S}|{M}
 //------------------------------------------------------------------------------
@@ -526,7 +526,7 @@
     return object += operand;
 }
 
-#else //BOOST_NO_RVALUE_REFERENCES
+#else //BOOST_ICL_NO_CXX11_RVALUE_REFERENCES
 
 template<class Type, class OperandT>
 typename enable_if<is_binary_intra_combinable<Type, OperandT>, Type>::type
@@ -543,9 +543,9 @@
     return boost::move(object += operand);
 }
 
-#endif //BOOST_NO_RVALUE_REFERENCES
+#endif //BOOST_ICL_NO_CXX11_RVALUE_REFERENCES
 
-#ifdef BOOST_NO_RVALUE_REFERENCES
+#ifdef BOOST_ICL_NO_CXX11_RVALUE_REFERENCES
 //------------------------------------------------------------------------------
 //- T op | (T, c P&) T:{S}|{M} P:{S}|{M}
 //------------------------------------------------------------------------------
@@ -559,7 +559,7 @@
 {
     return object += operand;
 }
-#else //BOOST_NO_RVALUE_REFERENCES
+#else //BOOST_ICL_NO_CXX11_RVALUE_REFERENCES
 
 template<class Type>
 typename enable_if<is_interval_container<Type>, Type>::type
@@ -590,7 +590,7 @@
     return boost::move(object += operand);
 }
 
-#endif //BOOST_NO_RVALUE_REFERENCES
+#endif //BOOST_ICL_NO_CXX11_RVALUE_REFERENCES
 
 
 //==============================================================================
@@ -707,7 +707,7 @@
     return erase(object, operand);
 }
 
-#ifdef BOOST_NO_RVALUE_REFERENCES
+#ifdef BOOST_ICL_NO_CXX11_RVALUE_REFERENCES
 //------------------------------------------------------------------------------
 //- T op - (T, c P&) T:{S}|{M} P:{e i S'}|{e i b p S' M'}
 //------------------------------------------------------------------------------
@@ -718,7 +718,7 @@
     return object -= operand;
 }
 
-#else //BOOST_NO_RVALUE_REFERENCES
+#else //BOOST_ICL_NO_CXX11_RVALUE_REFERENCES
 
 template<class Type, class OperandT>
 typename enable_if<is_right_inter_combinable<Type, OperandT>, Type>::type
@@ -735,7 +735,7 @@
     return boost::move(object -= operand);
 }
 
-#endif //BOOST_NO_RVALUE_REFERENCES
+#endif //BOOST_ICL_NO_CXX11_RVALUE_REFERENCES
 
 //==============================================================================
 //= Intersection<IntervalSet|IntervalSet>
@@ -776,7 +776,7 @@
     return object;
 }
 
-#ifdef BOOST_NO_RVALUE_REFERENCES
+#ifdef BOOST_ICL_NO_CXX11_RVALUE_REFERENCES
 //------------------------------------------------------------------------------
 //- T op & (T, c P&) T:{S}|{M} P:{e i S'}|{e i b p S' M'} S<S' M<M' <:coarser
 //------------------------------------------------------------------------------
@@ -787,7 +787,7 @@
     return object &= operand;
 }
 
-#else //BOOST_NO_RVALUE_REFERENCES
+#else //BOOST_ICL_NO_CXX11_RVALUE_REFERENCES
 
 template<class Type, class OperandT>
 typename enable_if<is_binary_inter_combinable<Type, OperandT>, Type>::type
@@ -804,9 +804,9 @@
     return boost::move(object &= operand);
 }
 
-#endif //BOOST_NO_RVALUE_REFERENCES
+#endif //BOOST_ICL_NO_CXX11_RVALUE_REFERENCES
 
-#ifdef BOOST_NO_RVALUE_REFERENCES
+#ifdef BOOST_ICL_NO_CXX11_RVALUE_REFERENCES
 //------------------------------------------------------------------------------
 //- T op & (c P&, T) T:{S}|{M} P:{e i S'}|{e i b p S' M'} S<S' M<M' <:coarser
 //------------------------------------------------------------------------------
@@ -817,7 +817,7 @@
     return object &= operand;
 }
 
-#else //BOOST_NO_RVALUE_REFERENCES
+#else //BOOST_ICL_NO_CXX11_RVALUE_REFERENCES
 
 template<class Type, class OperandT>
 typename enable_if<is_binary_inter_combinable<Type, OperandT>, Type>::type
@@ -834,9 +834,9 @@
     return boost::move(object &= operand);
 }
 
-#endif //BOOST_NO_RVALUE_REFERENCES
+#endif //BOOST_ICL_NO_CXX11_RVALUE_REFERENCES
 
-#ifdef BOOST_NO_RVALUE_REFERENCES
+#ifdef BOOST_ICL_NO_CXX11_RVALUE_REFERENCES
 //------------------------------------------------------------------------------
 //- T op & (T, c T&) T:{S M}
 //------------------------------------------------------------------------------
@@ -847,7 +847,7 @@
     return object &= operand;
 }
 
-#else //BOOST_NO_RVALUE_REFERENCES
+#else //BOOST_ICL_NO_CXX11_RVALUE_REFERENCES
 
 template<class Type>
 typename enable_if<is_interval_container<Type>, Type>::type
@@ -878,7 +878,7 @@
     return boost::move(object &= operand);
 }
 
-#endif //BOOST_NO_RVALUE_REFERENCES
+#endif //BOOST_ICL_NO_CXX11_RVALUE_REFERENCES
 
 //------------------------------------------------------------------------------
 //- intersects<IntervalSet|IntervalMap>
@@ -1011,7 +1011,7 @@
     return icl::flip(object, operand);
 }
 
-#ifdef BOOST_NO_RVALUE_REFERENCES
+#ifdef BOOST_ICL_NO_CXX11_RVALUE_REFERENCES
 //------------------------------------------------------------------------------
 //- T op ^ (T, c P&) T:{S}|{M} P:{e i S'}|{b p M'} S<S' M<M' <:coarser
 //------------------------------------------------------------------------------
@@ -1022,7 +1022,7 @@
     return object ^= operand;
 }
 
-#else //BOOST_NO_RVALUE_REFERENCES
+#else //BOOST_ICL_NO_CXX11_RVALUE_REFERENCES
 
 template<class Type, class OperandT>
 typename enable_if<is_binary_intra_combinable<Type, OperandT>, Type>::type
@@ -1039,9 +1039,9 @@
     return boost::move(object ^= operand);
 }
 
-#endif //BOOST_NO_RVALUE_REFERENCES
+#endif //BOOST_ICL_NO_CXX11_RVALUE_REFERENCES
 
-#ifdef BOOST_NO_RVALUE_REFERENCES
+#ifdef BOOST_ICL_NO_CXX11_RVALUE_REFERENCES
 //------------------------------------------------------------------------------
 //- T op ^ (c P&, T) T:{S}|{M} P:{e i S'}|{b p M'} S<S' M<M' <:coarser
 //------------------------------------------------------------------------------
@@ -1052,7 +1052,7 @@
     return object ^= operand;
 }
 
-#else //BOOST_NO_RVALUE_REFERENCES
+#else //BOOST_ICL_NO_CXX11_RVALUE_REFERENCES
 
 template<class Type, class OperandT>
 typename enable_if<is_binary_intra_combinable<Type, OperandT>, Type>::type
@@ -1069,9 +1069,9 @@
     return boost::move(object ^= operand);
 }
 
-#endif //BOOST_NO_RVALUE_REFERENCES
+#endif //BOOST_ICL_NO_CXX11_RVALUE_REFERENCES
 
-#ifdef BOOST_NO_RVALUE_REFERENCES
+#ifdef BOOST_ICL_NO_CXX11_RVALUE_REFERENCES
 //------------------------------------------------------------------------------
 //- T op ^ (T, c T&) T:{S M}
 //------------------------------------------------------------------------------
@@ -1082,7 +1082,7 @@
     return object ^= operand;
 }
 
-#else //BOOST_NO_RVALUE_REFERENCES
+#else //BOOST_ICL_NO_CXX11_RVALUE_REFERENCES
 
 template<class Type>
 typename enable_if<is_interval_container<Type>, Type>::type
@@ -1113,7 +1113,7 @@
     return boost::move(object ^= operand);
 }
 
-#endif //BOOST_NO_RVALUE_REFERENCES
+#endif //BOOST_ICL_NO_CXX11_RVALUE_REFERENCES
 
 //==========================================================================
 //= Element Iteration <IntervalSet|IntervalMap>

Modified: branches/release/boost/icl/detail/set_algo.hpp
==============================================================================
--- branches/release/boost/icl/detail/set_algo.hpp (original)
+++ branches/release/boost/icl/detail/set_algo.hpp 2012-12-30 20:17:30 EST (Sun, 30 Dec 2012)
@@ -11,10 +11,7 @@
 #define BOOST_ICL_SET_ALGO_HPP_JOFA_990225
 
 #include <boost/type_traits/remove_const.hpp>
-
 #include <boost/icl/detail/notate.hpp>
-#include <boost/icl/functors.hpp>
-
 #include <boost/icl/concept/container.hpp>
 #include <boost/icl/concept/set_value.hpp>
 #include <boost/icl/concept/map_value.hpp>

Modified: branches/release/boost/icl/impl_config.hpp
==============================================================================
--- branches/release/boost/icl/impl_config.hpp (original)
+++ branches/release/boost/icl/impl_config.hpp 2012-12-30 20:17:30 EST (Sun, 30 Dec 2012)
@@ -9,6 +9,8 @@
 #ifndef BOOST_ICL_IMPL_CONFIG_HPP_JOFA_091225
 #define BOOST_ICL_IMPL_CONFIG_HPP_JOFA_091225
 
+#include <boost/icl/detail/boost_config.hpp>
+
 /*-----------------------------------------------------------------------------+
 | You can choose an implementation for the basic set and map classes. |
 | Select at most ONE of the following defines to change the default |
@@ -39,6 +41,19 @@
 # define ICL_IMPL_SPACE std
 #endif
 
+/*-----------------------------------------------------------------------------+
+| MEMO 2012-12-30: Due to problems with new c++11 compilers and their |
+| implementation of rvalue references, ICL's move implementation will be |
+| disabled for some new compilers for version 1.53. |
++-----------------------------------------------------------------------------*/
+#if defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
+# define BOOST_ICL_NO_CXX11_RVALUE_REFERENCES
+#elif defined(__clang__)
+# define BOOST_ICL_NO_CXX11_RVALUE_REFERENCES
+#elif (defined(__GNUC__) && (__GNUC__ == 4) && (__GNUC_MINOR__ >= 7))
+# define BOOST_ICL_NO_CXX11_RVALUE_REFERENCES
+#endif
+
 #include <boost/move/move.hpp>
 
 #endif // BOOST_ICL_IMPL_CONFIG_HPP_JOFA_091225

Modified: branches/release/boost/icl/interval_base_map.hpp
==============================================================================
--- branches/release/boost/icl/interval_base_map.hpp (original)
+++ branches/release/boost/icl/interval_base_map.hpp 2012-12-30 20:17:30 EST (Sun, 30 Dec 2012)
@@ -222,7 +222,7 @@
         return *this;
     }
 
-# ifndef BOOST_NO_RVALUE_REFERENCES
+# ifndef BOOST_ICL_NO_CXX11_RVALUE_REFERENCES
     //==========================================================================
     //= Move semantics
     //==========================================================================
@@ -244,7 +244,7 @@
     }
 
     //==========================================================================
-# endif // BOOST_NO_RVALUE_REFERENCES
+# endif // BOOST_ICL_NO_CXX11_RVALUE_REFERENCES
 
     /** swap the content of containers */
     void swap(interval_base_map& object) { _map.swap(object._map); }

Modified: branches/release/boost/icl/interval_base_set.hpp
==============================================================================
--- branches/release/boost/icl/interval_base_set.hpp (original)
+++ branches/release/boost/icl/interval_base_set.hpp 2012-12-30 20:17:30 EST (Sun, 30 Dec 2012)
@@ -175,7 +175,7 @@
         return *this;
     }
 
-# ifndef BOOST_NO_RVALUE_REFERENCES
+# ifndef BOOST_ICL_NO_CXX11_RVALUE_REFERENCES
     //==========================================================================
     //= Move semantics
     //==========================================================================
@@ -195,7 +195,7 @@
     }
 
     //==========================================================================
-# endif // BOOST_NO_RVALUE_REFERENCES
+# endif // BOOST_ICL_NO_CXX11_RVALUE_REFERENCES
 
     /** swap the content of containers */
     void swap(interval_base_set& operand) { _set.swap(operand._set); }

Modified: branches/release/boost/icl/interval_map.hpp
==============================================================================
--- branches/release/boost/icl/interval_map.hpp (original)
+++ branches/release/boost/icl/interval_map.hpp 2012-12-30 20:17:30 EST (Sun, 30 Dec 2012)
@@ -86,7 +86,7 @@
                                  Traits,Compare,Combine,Section,Interval,Alloc>& src)
     { this->assign(src); }
 
- explicit interval_map(domain_mapping_type& base_pair): base_type()
+ explicit interval_map(const domain_mapping_type& base_pair): base_type()
     { this->add(base_pair); }
 
     explicit interval_map(const value_type& value_pair): base_type()
@@ -94,6 +94,13 @@
 
 
     /// Assignment operator
+ interval_map& operator = (const interval_map& src)
+ {
+ base_type::operator=(src);
+ return *this;
+ }
+
+ /// Assignment operator for base type
     template<class SubType>
     interval_map& operator =
         (const interval_base_map<SubType,DomainT,CodomainT,
@@ -113,7 +120,7 @@
             prior_ = this->add(prior_, *it_);
     }
 
-# ifndef BOOST_NO_RVALUE_REFERENCES
+# ifndef BOOST_ICL_NO_CXX11_RVALUE_REFERENCES
     //==========================================================================
     //= Move semantics
     //==========================================================================
@@ -131,7 +138,7 @@
     }
 
     //==========================================================================
-# endif // BOOST_NO_RVALUE_REFERENCES
+# endif // BOOST_ICL_NO_CXX11_RVALUE_REFERENCES
 
 private:
     // Private functions that shall be accessible by the baseclass:

Modified: branches/release/boost/icl/interval_set.hpp
==============================================================================
--- branches/release/boost/icl/interval_set.hpp (original)
+++ branches/release/boost/icl/interval_set.hpp 2012-12-30 20:17:30 EST (Sun, 30 Dec 2012)
@@ -116,6 +116,13 @@
     }
 
     /// Assignment operator
+ interval_set& operator = (const interval_set& src)
+ {
+ base_type::operator=(src);
+ return *this;
+ }
+
+ /// Assignment operator for base type
     template<class SubType>
     interval_set& operator =
         (const interval_base_set<SubType,DomainT,Compare,Interval,Alloc>& src)
@@ -137,7 +144,7 @@
             prior_ = this->add(prior_, *it_);
     }
 
-# ifndef BOOST_NO_RVALUE_REFERENCES
+# ifndef BOOST_ICL_NO_CXX11_RVALUE_REFERENCES
     //==========================================================================
     //= Move semantics
     //==========================================================================
@@ -154,7 +161,7 @@
         return *this;
     }
     //==========================================================================
-# endif // BOOST_NO_RVALUE_REFERENCES
+# endif // BOOST_ICL_NO_CXX11_RVALUE_REFERENCES
 
 private:
     // Private functions that shall be accessible by the baseclass:

Modified: branches/release/boost/icl/map.hpp
==============================================================================
--- branches/release/boost/icl/map.hpp (original)
+++ branches/release/boost/icl/map.hpp 2012-12-30 20:17:30 EST (Sun, 30 Dec 2012)
@@ -34,9 +34,9 @@
 #include <boost/icl/type_traits/is_element_container.hpp>
 #include <boost/icl/type_traits/has_inverse.hpp>
 #include <boost/icl/type_traits/to_string.hpp>
-#include <boost/icl/functors.hpp>
 
 #include <boost/icl/associative_element_container.hpp>
+#include <boost/icl/functors.hpp>
 
 namespace boost{namespace icl
 {
@@ -198,7 +198,7 @@
         return *this;
     }
 
-# ifndef BOOST_NO_RVALUE_REFERENCES
+# ifndef BOOST_ICL_NO_CXX11_RVALUE_REFERENCES
     //==========================================================================
     //= Move semantics
     //==========================================================================
@@ -218,7 +218,7 @@
         return *this;
     }
     //==========================================================================
-# endif // BOOST_NO_RVALUE_REFERENCES
+# endif // BOOST_ICL_NO_CXX11_RVALUE_REFERENCES
 
     void swap(map& src) { base_type::swap(src); }
 

Modified: branches/release/boost/icl/separate_interval_set.hpp
==============================================================================
--- branches/release/boost/icl/separate_interval_set.hpp (original)
+++ branches/release/boost/icl/separate_interval_set.hpp 2012-12-30 20:17:30 EST (Sun, 30 Dec 2012)
@@ -107,6 +107,13 @@
     explicit separate_interval_set(const interval_type& itv): base_type() { this->add(itv); }
 
     /// Assignment operator
+ separate_interval_set& operator = (const separate_interval_set& src)
+ {
+ base_type::operator=(src);
+ return *this;
+ }
+
+ /// Assignment operator for base type
     template<class SubType>
     separate_interval_set& operator =
         (const interval_base_set<SubType,DomainT,Compare,Interval,Alloc>& src)
@@ -123,7 +130,7 @@
         this->_set.insert(src.begin(), src.end());
     }
 
-# ifndef BOOST_NO_RVALUE_REFERENCES
+# ifndef BOOST_ICL_NO_CXX11_RVALUE_REFERENCES
     //==========================================================================
     //= Move semantics
     //==========================================================================
@@ -140,7 +147,7 @@
         return *this;
     }
     //==========================================================================
-# endif // BOOST_NO_RVALUE_REFERENCES
+# endif // BOOST_ICL_NO_CXX11_RVALUE_REFERENCES
 
 private:
     // Private functions that shall be accessible by the baseclass:

Modified: branches/release/boost/icl/set.hpp
==============================================================================
--- branches/release/boost/icl/set.hpp (original)
+++ branches/release/boost/icl/set.hpp 2012-12-30 20:17:30 EST (Sun, 30 Dec 2012)
@@ -18,10 +18,8 @@
 # include <set>
 #endif
 
-#include <boost/icl/concept/associative_element_container.hpp>
-
-
-}} // namespace icl boost
+#include <boost/icl/associative_element_container.hpp>
+#include <boost/icl/functors.hpp>
 
 #endif // BOOST_ICL_SET_HPP_JOFA_070519
 

Modified: branches/release/boost/icl/split_interval_map.hpp
==============================================================================
--- branches/release/boost/icl/split_interval_map.hpp (original)
+++ branches/release/boost/icl/split_interval_map.hpp 2012-12-30 20:17:30 EST (Sun, 30 Dec 2012)
@@ -72,13 +72,20 @@
     /// Copy constructor
     split_interval_map(const split_interval_map& src): base_type(src) {}
 
- explicit split_interval_map(domain_mapping_type& base_pair): base_type()
+ explicit split_interval_map(const domain_mapping_type& base_pair): base_type()
     { this->add(base_pair); }
 
     explicit split_interval_map(const value_type& value_pair): base_type()
     { this->add(value_pair); }
 
- /// Copy assignment operator
+ /// Assignment operator
+ split_interval_map& operator = (const split_interval_map& src)
+ {
+ base_type::operator=(src);
+ return *this;
+ }
+
+ /// Assignment operator for base type
     template<class SubType>
     split_interval_map& operator =
         (const interval_base_map<SubType,DomainT,CodomainT,
@@ -94,7 +101,7 @@
         this->_map.insert(src.begin(), src.end());
     }
 
-# ifndef BOOST_NO_RVALUE_REFERENCES
+# ifndef BOOST_ICL_NO_CXX11_RVALUE_REFERENCES
     //==========================================================================
     //= Move semantics
     //==========================================================================
@@ -112,7 +119,7 @@
     }
 
     //==========================================================================
-# endif // BOOST_NO_RVALUE_REFERENCES
+# endif // BOOST_ICL_NO_CXX11_RVALUE_REFERENCES
 
 private:
     // Private functions that shall be accessible by the baseclass:

Modified: branches/release/boost/icl/split_interval_set.hpp
==============================================================================
--- branches/release/boost/icl/split_interval_set.hpp (original)
+++ branches/release/boost/icl/split_interval_set.hpp 2012-12-30 20:17:30 EST (Sun, 30 Dec 2012)
@@ -105,6 +105,13 @@
     explicit split_interval_set(const domain_type& itv): base_type() { this->add(itv); }
 
     /// Assignment operator
+ split_interval_set& operator = (const split_interval_set& src)
+ {
+ base_type::operator=(src);
+ return *this;
+ }
+
+ /// Assignment operator for base type
     template<class SubType>
     split_interval_set& operator =
         (const interval_base_set<SubType,DomainT,Compare,Interval,Alloc>& src)
@@ -118,7 +125,7 @@
         this->_set.insert(src.begin(), src.end());
     }
 
-# ifndef BOOST_NO_RVALUE_REFERENCES
+# ifndef BOOST_ICL_NO_CXX11_RVALUE_REFERENCES
     //==========================================================================
     //= Move semantics
     //==========================================================================
@@ -135,7 +142,7 @@
         return *this;
     }
     //==========================================================================
-# endif // BOOST_NO_RVALUE_REFERENCES
+# endif // BOOST_ICL_NO_CXX11_RVALUE_REFERENCES
 
     
 private:


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