diff --git a/include/boost/preprocessor/config/limits.hpp b/include/boost/preprocessor/config/limits.hpp index 66bf090..71fa073 100644 --- a/include/boost/preprocessor/config/limits.hpp +++ b/include/boost/preprocessor/config/limits.hpp @@ -29,15 +29,15 @@ # if defined(BOOST_PP_LIMIT_SLOT_COUNT) # undef BOOST_PP_LIMIT_SLOT_COUNT # endif -# if defined(BOOST_PP_LIMIT_WHILE) -# undef BOOST_PP_LIMIT_WHILE -# endif # # if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT() # # if defined(BOOST_PP_LIMIT_MAG) # undef BOOST_PP_LIMIT_MAG # endif +# if defined(BOOST_PP_LIMIT_WHILE) +# undef BOOST_PP_LIMIT_WHILE +# endif # if defined(BOOST_PP_LIMIT_VARIADIC) # undef BOOST_PP_LIMIT_VARIADIC # endif @@ -72,9 +72,16 @@ # if !(BOOST_PP_LIMIT_MAG == 256 || BOOST_PP_LIMIT_MAG == 512 || BOOST_PP_LIMIT_MAG == 1024) # undef BOOST_PP_LIMIT_MAG # define BOOST_PP_LIMIT_MAG 256 +# if !defined(BOOST_PP_LIMIT_WHILE) # define BOOST_PP_LIMIT_WHILE 256 +# endif # else +# if defined(BOOST_PP_LIMIT_WHILE) && BOOST_PP_LIMIT_WHILE < BOOST_PP_LIMIT_MAG +# undef BOOST_PP_LIMIT_WHILE +# endif +# if !defined(BOOST_PP_LIMIT_WHILE) # define BOOST_PP_LIMIT_WHILE BOOST_PP_LIMIT_MAG +# endif # if defined(BOOST_PP_LIMIT_SEQ) # undef BOOST_PP_LIMIT_SEQ # endif @@ -82,6 +89,20 @@ # endif # else # define BOOST_PP_LIMIT_MAG 256 +# if !defined(BOOST_PP_LIMIT_WHILE) +# define BOOST_PP_LIMIT_WHILE 256 +# endif +# endif +# +# if defined(BOOST_PP_LIMIT_WHILE) +# if !(BOOST_PP_LIMIT_WHILE == 256 || BOOST_PP_LIMIT_WHILE == 512 || BOOST_PP_LIMIT_WHILE == 1024) +# undef BOOST_PP_LIMIT_WHILE +# define BOOST_PP_LIMIT_WHILE 256 +# elif BOOST_PP_LIMIT_WHILE < BOOST_PP_LIMIT_MAG +# undef BOOST_PP_LIMIT_WHILE +# define BOOST_PP_LIMIT_WHILE BOOST_PP_LIMIT_MAG +# endif +# else # define BOOST_PP_LIMIT_WHILE 256 # endif # @@ -112,7 +133,7 @@ # endif # # if defined(BOOST_PP_LIMIT_FOR) -# if !(BOOST_PP_LIMIT_FOR == 256 || BOOST_PP_LIMIT_FOR == 512) +# if !(BOOST_PP_LIMIT_FOR == 256 || BOOST_PP_LIMIT_FOR == 512 || BOOST_PP_LIMIT_FOR == 1024) # undef BOOST_PP_LIMIT_FOR # define BOOST_PP_LIMIT_FOR 256 # elif BOOST_PP_LIMIT_FOR > BOOST_PP_LIMIT_MAG @@ -124,7 +145,7 @@ # endif # # if defined(BOOST_PP_LIMIT_REPEAT) -# if !(BOOST_PP_LIMIT_REPEAT == 256 || BOOST_PP_LIMIT_REPEAT == 512) +# if !(BOOST_PP_LIMIT_REPEAT == 256 || BOOST_PP_LIMIT_REPEAT == 512 || BOOST_PP_LIMIT_REPEAT == 1024) # undef BOOST_PP_LIMIT_REPEAT # define BOOST_PP_LIMIT_REPEAT 256 # elif BOOST_PP_LIMIT_REPEAT > BOOST_PP_LIMIT_MAG @@ -148,7 +169,7 @@ # endif # # if defined(BOOST_PP_LIMIT_ITERATION) -# if !(BOOST_PP_LIMIT_ITERATION == 256 || BOOST_PP_LIMIT_ITERATION == 512) +# if !(BOOST_PP_LIMIT_ITERATION == 256 || BOOST_PP_LIMIT_ITERATION == 512 || BOOST_PP_LIMIT_ITERATION == 1024) # undef BOOST_PP_LIMIT_ITERATION # define BOOST_PP_LIMIT_ITERATION 256 # elif BOOST_PP_LIMIT_ITERATION > BOOST_PP_LIMIT_MAG diff --git a/include/boost/preprocessor/repetition/deduce_r.hpp b/include/boost/preprocessor/repetition/deduce_r.hpp index 27fff7b..5021629 100644 --- a/include/boost/preprocessor/repetition/deduce_r.hpp +++ b/include/boost/preprocessor/repetition/deduce_r.hpp @@ -25,6 +25,8 @@ # define BOOST_PP_DEDUCE_R() BOOST_PP_DEC(BOOST_PP_AUTO_REC(BOOST_PP_FOR_P, 256)) # elif BOOST_PP_LIMIT_FOR == 512 # define BOOST_PP_DEDUCE_R() BOOST_PP_DEC(BOOST_PP_AUTO_REC(BOOST_PP_FOR_P, 512)) +# elif BOOST_PP_LIMIT_FOR == 1024 +# define BOOST_PP_DEDUCE_R() BOOST_PP_DEC(BOOST_PP_AUTO_REC(BOOST_PP_FOR_P, 1024)) # else # error Incorrect value for the BOOST_PP_LIMIT_FOR limit # endif