Petr Machata 76982e
Index: /trunk/boost/foreach_fwd.hpp
Petr Machata 76982e
===================================================================
Petr Machata 76982e
--- /trunk/boost/foreach_fwd.hpp	(revision 62661)
Petr Machata 76982e
+++ /trunk/boost/foreach_fwd.hpp	(revision 75540)
Petr Machata 76982e
@@ -15,4 +15,6 @@
Petr Machata 76982e
 #define BOOST_FOREACH_FWD_HPP
Petr Machata 76982e
 
Petr Machata 76982e
+#include <utility> // for std::pair
Petr Machata 76982e
+
Petr Machata 76982e
 // This must be at global scope, hence the uglified name
Petr Machata 76982e
 enum boost_foreach_argument_dependent_lookup_hack
Petr Machata 76982e
@@ -26,4 +28,7 @@
Petr Machata 76982e
 namespace foreach
Petr Machata 76982e
 {
Petr Machata 76982e
+    template<typename T>
Petr Machata 76982e
+    std::pair<T, T> in_range(T begin, T end);
Petr Machata 76982e
+
Petr Machata 76982e
     ///////////////////////////////////////////////////////////////////////////////
Petr Machata 76982e
     // boost::foreach::tag
Petr Machata 76982e
@@ -47,4 +52,22 @@
Petr Machata 76982e
 } // namespace foreach
Petr Machata 76982e
 
Petr Machata 76982e
+// Workaround for unfortunate https://svn.boost.org/trac/boost/ticket/6131
Petr Machata 76982e
+namespace BOOST_FOREACH
Petr Machata 76982e
+{
Petr Machata 76982e
+    using foreach::in_range;
Petr Machata 76982e
+    using foreach::tag;
Petr Machata 76982e
+
Petr Machata 76982e
+    template<typename T>
Petr Machata 76982e
+    struct is_lightweight_proxy
Petr Machata 76982e
+      : foreach::is_lightweight_proxy<T>
Petr Machata 76982e
+    {};
Petr Machata 76982e
+
Petr Machata 76982e
+    template<typename T>
Petr Machata 76982e
+    struct is_noncopyable
Petr Machata 76982e
+      : foreach::is_noncopyable<T>
Petr Machata 76982e
+    {};
Petr Machata 76982e
+
Petr Machata 76982e
+} // namespace BOOST_FOREACH
Petr Machata 76982e
+
Petr Machata 76982e
 } // namespace boost
Petr Machata 76982e
 
Petr Machata 76982e
Index: /trunk/boost/foreach.hpp
Petr Machata 76982e
===================================================================
Petr Machata 76982e
--- /trunk/boost/foreach.hpp	(revision 75077)
Petr Machata 76982e
+++ /trunk/boost/foreach.hpp	(revision 75540)
Petr Machata 76982e
@@ -166,5 +166,5 @@
Petr Machata 76982e
 //   at the global namespace for your type.
Petr Machata 76982e
 template<typename T>
Petr Machata 76982e
-inline boost::foreach::is_lightweight_proxy<T> *
Petr Machata 76982e
+inline boost::BOOST_FOREACH::is_lightweight_proxy<T> *
Petr Machata 76982e
 boost_foreach_is_lightweight_proxy(T *&, BOOST_FOREACH_TAG_DEFAULT) { return 0; }
Petr Machata 76982e
 
Petr Machata 76982e
@@ -191,5 +191,5 @@
Petr Machata 76982e
 //   at the global namespace for your type.
Petr Machata 76982e
 template<typename T>
Petr Machata 76982e
-inline boost::foreach::is_noncopyable<T> *
Petr Machata 76982e
+inline boost::BOOST_FOREACH::is_noncopyable<T> *
Petr Machata 76982e
 boost_foreach_is_noncopyable(T *&, BOOST_FOREACH_TAG_DEFAULT) { return 0; }
Petr Machata 76982e