| 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 | +} | 
|---|