1 | Index: 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 | }
|
---|
79 | Index: 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 | ;
|
---|
87 | Index: libs/phoenix/test/regression/bug7165.cpp
|
---|
88 | ===================================================================
|
---|
89 | new 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 | +}
|
---|