1 |
Index: /trunk/boost/foreach_fwd.hpp |
2 |
=================================================================== |
3 |
--- /trunk/boost/foreach_fwd.hpp (revision 62661) |
4 |
+++ /trunk/boost/foreach_fwd.hpp (revision 75540) |
5 |
@@ -15,4 +15,6 @@ |
6 |
#define BOOST_FOREACH_FWD_HPP |
7 |
|
8 |
+#include <utility> // for std::pair |
9 |
+ |
10 |
// This must be at global scope, hence the uglified name |
11 |
enum boost_foreach_argument_dependent_lookup_hack |
12 |
@@ -26,4 +28,7 @@ |
13 |
namespace foreach |
14 |
{ |
15 |
+ template<typename T> |
16 |
+ std::pair<T, T> in_range(T begin, T end); |
17 |
+ |
18 |
/////////////////////////////////////////////////////////////////////////////// |
19 |
// boost::foreach::tag |
20 |
@@ -47,4 +52,22 @@ |
21 |
} // namespace foreach |
22 |
|
23 |
+// Workaround for unfortunate https://svn.boost.org/trac/boost/ticket/6131 |
24 |
+namespace BOOST_FOREACH |
25 |
+{ |
26 |
+ using foreach::in_range; |
27 |
+ using foreach::tag; |
28 |
+ |
29 |
+ template<typename T> |
30 |
+ struct is_lightweight_proxy |
31 |
+ : foreach::is_lightweight_proxy<T> |
32 |
+ {}; |
33 |
+ |
34 |
+ template<typename T> |
35 |
+ struct is_noncopyable |
36 |
+ : foreach::is_noncopyable<T> |
37 |
+ {}; |
38 |
+ |
39 |
+} // namespace BOOST_FOREACH |
40 |
+ |
41 |
} // namespace boost |
42 |
|
43 |
Index: /trunk/boost/foreach.hpp |
44 |
=================================================================== |
45 |
--- /trunk/boost/foreach.hpp (revision 75077) |
46 |
+++ /trunk/boost/foreach.hpp (revision 75540) |
47 |
@@ -166,5 +166,5 @@ |
48 |
// at the global namespace for your type. |
49 |
template<typename T> |
50 |
-inline boost::foreach::is_lightweight_proxy<T> * |
51 |
+inline boost::BOOST_FOREACH::is_lightweight_proxy<T> * |
52 |
boost_foreach_is_lightweight_proxy(T *&, BOOST_FOREACH_TAG_DEFAULT) { return 0; } |
53 |
|
54 |
@@ -191,5 +191,5 @@ |
55 |
// at the global namespace for your type. |
56 |
template<typename T> |
57 |
-inline boost::foreach::is_noncopyable<T> * |
58 |
+inline boost::BOOST_FOREACH::is_noncopyable<T> * |
59 |
boost_foreach_is_noncopyable(T *&, BOOST_FOREACH_TAG_DEFAULT) { return 0; } |
60 |
|