Ticket #7165: boost_phoenix_7165.patch

File boost_phoenix_7165.patch, 4.6 KB (added by Mathieu Champlon <m.champlon@…>, 9 years ago)
Line 
1Index: boost/phoenix/core/actor.hpp
2===================================================================
3--- boost/phoenix/core/actor.hpp (working copy)
4+++ boost/phoenix/core/actor.hpp (working copy)
5@@ -85,3 +85,3 @@
6
7- #define BOOST_PHOENIX_ACTOR_ASSIGN_CHILD(Z, N, D) \
8+ #define BOOST_PHOENIX_ACTOR_ASSIGN_CHILD(N) \
9 assign( \
10@@ -93,3 +93,10 @@
11 /**/
12- #define BOOST_PHOENIX_ACTOR_ASSIGN_CALL(Z, N, D) \
13+ #define BOOST_PHOENIX_ACTOR_START_ASSIGN_CHILD(Z, N, D) \
14+ proto::and_< \
15+ BOOST_PHOENIX_ACTOR_ASSIGN_CHILD(N) \
16+ /**/
17+ #define BOOST_PHOENIX_ACTOR_END_ASSIGN(Z, N, D) \
18+ > \
19+ /**/
20+ #define BOOST_PHOENIX_ACTOR_ASSIGN_CALL(N) \
21 proto::when< \
22@@ -98,11 +105,18 @@
23 > \
24- , proto::and_< \
25- BOOST_PP_ENUM( \
26- N \
27- , BOOST_PHOENIX_ACTOR_ASSIGN_CHILD \
28- , _ \
29- ) \
30- > \
31+ , BOOST_PP_ENUM( \
32+ N \
33+ , BOOST_PHOENIX_ACTOR_START_ASSIGN_CHILD \
34+ , _ \
35+ ) \
36+ BOOST_PP_REPEAT( \
37+ N \
38+ , BOOST_PHOENIX_ACTOR_END_ASSIGN \
39+ , _ \
40+ ) \
41 > \
42 /**/
43+ #define BOOST_PHOENIX_ACTOR_START_ASSIGN_CALL(Z, N, D) \
44+ proto::or_< \
45+ BOOST_PHOENIX_ACTOR_ASSIGN_CALL(N) \
46+ /**/
47
48@@ -127,8 +141,7 @@
49 struct assign
50- : proto::or_<
51- BOOST_PP_ENUM_SHIFTED(
52- BOOST_PHOENIX_LIMIT
53- , BOOST_PHOENIX_ACTOR_ASSIGN_CALL
54- , _
55- )
56+ : BOOST_PP_ENUM_SHIFTED(
57+ BOOST_PHOENIX_LIMIT
58+ , BOOST_PHOENIX_ACTOR_START_ASSIGN_CALL
59+ , _
60+ )
61 , proto::when<
62@@ -137,3 +150,7 @@
63 >
64- >
65+ BOOST_PP_REPEAT(
66+ BOOST_PP_DEC(BOOST_PHOENIX_LIMIT)
67+ , BOOST_PHOENIX_ACTOR_END_ASSIGN
68+ , _
69+ )
70 {};
71@@ -146,3 +163,7 @@
72 #undef BOOST_PHOENIX_ACTOR_ASSIGN_CALL
73+ #undef BOOST_PHOENIX_ACTOR_START_ASSIGN_CALL
74+ #undef BOOST_PHOENIX_ACTOR_END_ASSIGN_CALL
75 #undef BOOST_PHOENIX_ACTOR_ASSIGN_CHILD
76+ #undef BOOST_PHOENIX_ACTOR_START_ASSIGN_CHILD
77+ #undef BOOST_PHOENIX_ACTOR_END_ASSIGN_CHILD
78 }
79Index: libs/phoenix/test/Jamfile
80===================================================================
81--- libs/phoenix/test/Jamfile (working copy)
82+++ libs/phoenix/test/Jamfile (working copy)
83@@ -128,2 +128,4 @@
84 [ run regression/bug6040.cpp ]
85+ [ run regression/bug7165.cpp ]
86 ;
87Index: libs/phoenix/test/regression/bug7165.cpp
88===================================================================
89new file mode 100644
90--- libs/phoenix/test/regression/bug7165.cpp (revision 0)
91+++ libs/phoenix/test/regression/bug7165.cpp (working copy)
92@@ -0,0 +1,6 @@
93+#define BOOST_PHOENIX_LIMIT 20
94+#include <boost/phoenix.hpp>
95+
96+int main()
97+{
98+}