diff --git a/include/boost/preprocessor/detail/iterate/exp1.hpp b/include/boost/preprocessor/detail/iterate/exp1.hpp index 8352de1..917746b 100644 --- a/include/boost/preprocessor/detail/iterate/exp1.hpp +++ b/include/boost/preprocessor/detail/iterate/exp1.hpp @@ -7,15 +7,19 @@ # * no claim at to its suitability for any purpose. * # * * # ************************************************************************** */ -# +# # ifndef BOOST_PP_FILENAME_1 -# error BOOST_PP: depth #1 filename is not set -# elif !defined BOOST_PP_ITERATION_FINISH_1 -# error BOOST_PP: depth #1 upper bound is not set +# error BOOST_PP: depth #1 filename is not defined # endif # -# ifndef BOOST_PP_ITERATION_START_1 -# define BOOST_PP_ITERATION_START_1 BOOST_PP_DEFAULT_START +# ifdef BOOST_PP_ITERATION_LIMITS +# define BOOST_PP_ITERATION_BOUND BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_ITERATION_LIMITS) +# include BOOST_PP_SET_ITERATION_START() +# define BOOST_PP_ITERATION_BOUND BOOST_PP_TUPLE_ELEM(2, 1, BOOST_PP_ITERATION_LIMITS) +# include BOOST_PP_SET_ITERATION_FINISH() +# undef BOOST_PP_ITERATION_LIMITS +# else +# error BOOST_PP: depth #1 iterations boundaries not defined # endif # # if BOOST_PP_ITERATION_DEPTH() != 0 @@ -29,12 +33,12 @@ # # line 1 "" # -# if BOOST_PP_ITERATION_START_1 <= 0 && BOOST_PP_ITERATION_FINISH_1 >= 0 +# if (BOOST_PP_ITERATION_START_1 <= 0) && (BOOST_PP_ITERATION_FINISH_1 >= 0) # define BOOST_PP_ITERATION_1 0 # include BOOST_PP_FILENAME_1 # undef BOOST_PP_ITERATION_1 # endif -# if BOOST_PP_ITERATION_START_1 <= 1 && BOOST_PP_ITERATION_FINISH_1 >= 1 +# if (BOOST_PP_ITERATION_START_1 <= 1) && (BOOST_PP_ITERATION_FINISH_1 >= 1) # define BOOST_PP_ITERATION_1 1 # include BOOST_PP_FILENAME_1 # undef BOOST_PP_ITERATION_1 diff --git a/include/boost/preprocessor/detail/iterate/exp2.hpp b/include/boost/preprocessor/detail/iterate/exp2.hpp index ba0c750..cdbd44d 100644 --- a/include/boost/preprocessor/detail/iterate/exp2.hpp +++ b/include/boost/preprocessor/detail/iterate/exp2.hpp @@ -9,13 +9,17 @@ # ************************************************************************** */ # # ifndef BOOST_PP_FILENAME_2 -# error BOOST_PP: depth #2 filename is not set -# elif !defined BOOST_PP_ITERATION_FINISH_2 -# error BOOST_PP: depth #2 upper bound is not set +# error BOOST_PP: depth #2 filename is not defined # endif # -# ifndef BOOST_PP_ITERATION_START_2 -# define BOOST_PP_ITERATION_START_2 BOOST_PP_DEFAULT_START +# ifdef BOOST_PP_ITERATION_LIMITS +# define BOOST_PP_ITERATION_BOUND BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_ITERATION_LIMITS) +# include BOOST_PP_SET_ITERATION_START() +# define BOOST_PP_ITERATION_BOUND BOOST_PP_TUPLE_ELEM(2, 1, BOOST_PP_ITERATION_LIMITS) +# include BOOST_PP_SET_ITERATION_FINISH() +# undef BOOST_PP_ITERATION_LIMITS +# else +# error BOOST_PP: depth #2 iterations boundaries not defined # endif # # if BOOST_PP_ITERATION_DEPTH() != 1 @@ -27,12 +31,12 @@ # # line 1 "" # -# if BOOST_PP_ITERATION_START_2 <= 0 && BOOST_PP_ITERATION_FINISH_2 >= 0 +# if (BOOST_PP_ITERATION_START_2 <= 0) && (BOOST_PP_ITERATION_FINISH_2 >= 0) # define BOOST_PP_ITERATION_2 0 # include BOOST_PP_FILENAME_2 # undef BOOST_PP_ITERATION_2 # endif -# if BOOST_PP_ITERATION_START_2 <= 1 && BOOST_PP_ITERATION_FINISH_2 >= 1 +# if (BOOST_PP_ITERATION_START_2 <= 1) && (BOOST_PP_ITERATION_FINISH_2 >= 1) # define BOOST_PP_ITERATION_2 1 # include BOOST_PP_FILENAME_2 # undef BOOST_PP_ITERATION_2 diff --git a/include/boost/preprocessor/detail/iterate/exp3.hpp b/include/boost/preprocessor/detail/iterate/exp3.hpp index 4e2f1c2..d64f581 100644 --- a/include/boost/preprocessor/detail/iterate/exp3.hpp +++ b/include/boost/preprocessor/detail/iterate/exp3.hpp @@ -9,13 +9,17 @@ # ************************************************************************** */ # # ifndef BOOST_PP_FILENAME_3 -# error BOOST_PP: depth #3 filename is not set -# elif !defined BOOST_PP_ITERATION_FINISH_3 -# error BOOST_PP: depth #3 upper bound is not set +# error BOOST_PP: depth #3 filename is not defined # endif # -# ifndef BOOST_PP_ITERATION_START_3 -# define BOOST_PP_ITERATION_START_3 BOOST_PP_DEFAULT_START +# ifdef BOOST_PP_ITERATION_LIMITS +# define BOOST_PP_ITERATION_BOUND BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_ITERATION_LIMITS) +# include BOOST_PP_SET_ITERATION_START() +# define BOOST_PP_ITERATION_BOUND BOOST_PP_TUPLE_ELEM(2, 1, BOOST_PP_ITERATION_LIMITS) +# include BOOST_PP_SET_ITERATION_FINISH() +# undef BOOST_PP_ITERATION_LIMITS +# else +# error BOOST_PP: depth #3 iterations boundaries not defined # endif # # if BOOST_PP_ITERATION_DEPTH() != 2 @@ -27,12 +31,12 @@ # # line 1 "" # -# if BOOST_PP_ITERATION_START_3 <= 0 && BOOST_PP_ITERATION_FINISH_3 >= 0 +# if (BOOST_PP_ITERATION_START_3 <= 0) && (BOOST_PP_ITERATION_FINISH_3 >= 0) # define BOOST_PP_ITERATION_3 0 # include BOOST_PP_FILENAME_3 # undef BOOST_PP_ITERATION_3 # endif -# if BOOST_PP_ITERATION_START_3 <= 1 && BOOST_PP_ITERATION_FINISH_3 >= 1 +# if (BOOST_PP_ITERATION_START_3 <= 1) && (BOOST_PP_ITERATION_FINISH_3 >= 1) # define BOOST_PP_ITERATION_3 1 # include BOOST_PP_FILENAME_3 # undef BOOST_PP_ITERATION_3 diff --git a/include/boost/preprocessor/detail/iterate/exp4.hpp b/include/boost/preprocessor/detail/iterate/exp4.hpp index 269638e..0a6e8a5 100644 --- a/include/boost/preprocessor/detail/iterate/exp4.hpp +++ b/include/boost/preprocessor/detail/iterate/exp4.hpp @@ -9,13 +9,17 @@ # ************************************************************************** */ # # ifndef BOOST_PP_FILENAME_4 -# error BOOST_PP: depth #4 filename is not set -# elif !defined BOOST_PP_ITERATION_FINISH_4 -# error BOOST_PP: depth #4 upper bound is not set +# error BOOST_PP: depth #4 filename is not defined # endif # -# ifndef BOOST_PP_ITERATION_START_4 -# define BOOST_PP_ITERATION_START_4 BOOST_PP_DEFAULT_START +# ifdef BOOST_PP_ITERATION_LIMITS +# define BOOST_PP_ITERATION_BOUND BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_ITERATION_LIMITS) +# include BOOST_PP_SET_ITERATION_START() +# define BOOST_PP_ITERATION_BOUND BOOST_PP_TUPLE_ELEM(2, 1, BOOST_PP_ITERATION_LIMITS) +# include BOOST_PP_SET_ITERATION_FINISH() +# undef BOOST_PP_ITERATION_LIMITS +# else +# error BOOST_PP: depth #4 iterations boundaries not defined # endif # # if BOOST_PP_ITERATION_DEPTH() != 3 @@ -27,12 +31,12 @@ # # line 1 "" # -# if BOOST_PP_ITERATION_START_4 <= 0 && BOOST_PP_ITERATION_FINISH_4 >= 0 +# if (BOOST_PP_ITERATION_START_4 <= 0) && (BOOST_PP_ITERATION_FINISH_4 >= 0) # define BOOST_PP_ITERATION_4 0 # include BOOST_PP_FILENAME_4 # undef BOOST_PP_ITERATION_4 # endif -# if BOOST_PP_ITERATION_START_4 <= 1 && BOOST_PP_ITERATION_FINISH_4 >= 1 +# if (BOOST_PP_ITERATION_START_4 <= 1) && (BOOST_PP_ITERATION_FINISH_4 >= 1) # define BOOST_PP_ITERATION_4 1 # include BOOST_PP_FILENAME_4 # undef BOOST_PP_ITERATION_4 diff --git a/include/boost/preprocessor/detail/iterate/exp5.hpp b/include/boost/preprocessor/detail/iterate/exp5.hpp index 629a6bc..3ae9750 100644 --- a/include/boost/preprocessor/detail/iterate/exp5.hpp +++ b/include/boost/preprocessor/detail/iterate/exp5.hpp @@ -9,13 +9,17 @@ # ************************************************************************** */ # # ifndef BOOST_PP_FILENAME_5 -# error BOOST_PP: depth #5 filename is not set -# elif !defined BOOST_PP_ITERATION_START_5 -# error BOOST_PP: depth #5 upper bound is not set +# error BOOST_PP: depth #5 filename is not defined # endif # -# ifndef BOOST_PP_ITERATION_START_5 -# define BOOST_PP_ITERATION_START_5 BOOST_PP_DEFAULT_START +# ifdef BOOST_PP_ITERATION_LIMITS +# define BOOST_PP_ITERATION_BOUND BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_ITERATION_LIMITS) +# include BOOST_PP_SET_ITERATION_START() +# define BOOST_PP_ITERATION_BOUND BOOST_PP_TUPLE_ELEM(2, 1, BOOST_PP_ITERATION_LIMITS) +# include BOOST_PP_SET_ITERATION_FINISH() +# undef BOOST_PP_ITERATION_LIMITS +# else +# error BOOST_PP: depth #5 iterations boundaries not defined # endif # # if BOOST_PP_ITERATION_DEPTH() != 4 @@ -27,12 +31,12 @@ # # line 1 "" # -# if BOOST_PP_ITERATION_START_5 <= 0 && BOOST_PP_ITERATION_START_5 >= 0 +# if (BOOST_PP_ITERATION_START_5 <= 0) && (BOOST_PP_ITERATION_START_5 >= 0) # define BOOST_PP_ITERATION_5 0 # include BOOST_PP_FILENAME_5 # undef BOOST_PP_ITERATION_5 # endif -# if BOOST_PP_ITERATION_START_5 <= 1 && BOOST_PP_ITERATION_START_5 >= 1 +# if (BOOST_PP_ITERATION_START_5 <= 1) && (BOOST_PP_ITERATION_START_5 >= 1) # define BOOST_PP_ITERATION_5 1 # include BOOST_PP_FILENAME_5 # undef BOOST_PP_ITERATION_5 diff --git a/include/boost/preprocessor/detail/iterate/local_iterate.hpp b/include/boost/preprocessor/detail/iterate/local_iterate.hpp index 7b5e01e..36723ab 100644 --- a/include/boost/preprocessor/detail/iterate/local_iterate.hpp +++ b/include/boost/preprocessor/detail/iterate/local_iterate.hpp @@ -8,12 +8,11 @@ # * * # ************************************************************************** */ # -# ifndef BOOST_PP_LOCAL_FINISH -# error BOOST_PP: local upper bound is not set -# endif -# -# ifndef BOOST_PP_LOCAL_START -# define BOOST_PP_LOCAL_START BOOST_PP_DEFAULT_START +# ifdef BOOST_PP_LOCAL_LIMITS +# define BOOST_PP_LOCAL_START BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_LOCAL_LIMITS) +# define BOOST_PP_LOCAL_FINISH BOOST_PP_TUPLE_ELEM(2, 1, BOOST_PP_LOCAL_LIMITS) +# else +# error BOOST_PP: local iteration boundaries are not defined # endif # # if (BOOST_PP_LOCAL_START) <= 0 && (BOOST_PP_LOCAL_FINISH) >= 0 diff --git a/include/boost/preprocessor/iterate.hpp b/include/boost/preprocessor/iterate.hpp index d70af3c..276e5b4 100644 --- a/include/boost/preprocessor/iterate.hpp +++ b/include/boost/preprocessor/iterate.hpp @@ -16,6 +16,8 @@ # include # include # +# include +# # define BOOST_PP_ITERATION_DEPTH_LIMIT 5 # define BOOST_PP_ITERATION_LIMIT 256 #