diff --git a/include/boost/preprocessor/detail/iterate/exp1.hpp b/include/boost/preprocessor/detail/iterate/exp1.hpp index 6f82af2..0726ff1 100644 --- a/include/boost/preprocessor/detail/iterate/exp1.hpp +++ b/include/boost/preprocessor/detail/iterate/exp1.hpp @@ -8,25 +8,37 @@ # * * # ************************************************************************** */ # -# line BOOST_PP_DETAIL_LINE() +# line BOOST_PP_DETAIL_LINE(_) # -# ifdef BOOST_PP_ITERATION_LIMITS -# ifndef BOOST_PP_FILENAME_1 +# if defined(BOOST_PP_ITERATION_LIMITS) +# if !defined(BOOST_PP_FILENAME_1) # error BOOST_PP: depth #1 filename is not defined # endif -# define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_ITERATION_LIMITS) +# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(0, (BOOST_PP_ITERATION_LIMITS)) # include BOOST_PP_SET_ITERATION_START() -# define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(2, 1, BOOST_PP_ITERATION_LIMITS) +# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(1, (BOOST_PP_ITERATION_LIMITS)) # include BOOST_PP_SET_ITERATION_FINISH() +# if BOOST_PP_ARRAY_SIZE((BOOST_PP_ITERATION_LIMITS)) >= 3 +# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(2, (BOOST_PP_ITERATION_LIMITS)) +# include BOOST_PP_SET_ITERATION_FLAGS() +# else +# define BOOST_PP_ITERATION_FLAGS_1 0 +# endif # undef BOOST_PP_ITERATION_LIMITS # elif defined(BOOST_PP_ITERATION_PARAMS_1) -# define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(3, 0, BOOST_PP_ITERATION_PARAMS_1) +# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(0, (BOOST_PP_ITERATION_PARAMS_1)) # include BOOST_PP_SET_ITERATION_START() -# define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(3, 1, BOOST_PP_ITERATION_PARAMS_1) +# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(1, (BOOST_PP_ITERATION_PARAMS_1)) # include BOOST_PP_SET_ITERATION_FINISH() -# define BOOST_PP_FILENAME_1 BOOST_PP_TUPLE_ELEM(3, 2, BOOST_PP_ITERATION_PARAMS_1) +# define BOOST_PP_FILENAME_1 BOOST_PP_ARRAY_ELEM(2, (BOOST_PP_ITERATION_PARAMS_1)) +# if BOOST_PP_ARRAY_SIZE((BOOST_PP_ITERATION_PARAMS_1)) >= 4 +# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(3, (BOOST_PP_ITERATION_PARAMS_1)) +# include BOOST_PP_SET_ITERATION_FLAGS() +# else +# define BOOST_PP_ITERATION_FLAGS_1 0 +# endif # else -# error BOOST_PP: depth #1 iterations boundaries not defined +# error BOOST_PP: depth #1 iteration boundaries or filename not defined # endif # # if BOOST_PP_ITERATION_DEPTH() != 0 @@ -1335,4 +1347,6 @@ # undef BOOST_PP_ITERATION_FINISH_1 # undef BOOST_PP_FILENAME_1 # +# undef BOOST_PP_ITERATION_FLAGS_1 +# # undef BOOST_PP_ITERATION_PARAMS_1 diff --git a/include/boost/preprocessor/detail/iterate/exp2.hpp b/include/boost/preprocessor/detail/iterate/exp2.hpp index b3e072d..26379b0 100644 --- a/include/boost/preprocessor/detail/iterate/exp2.hpp +++ b/include/boost/preprocessor/detail/iterate/exp2.hpp @@ -8,25 +8,37 @@ # * * # ************************************************************************** */ # -# line BOOST_PP_DETAIL_LINE() +# line BOOST_PP_DETAIL_LINE(_) # -# ifdef BOOST_PP_ITERATION_LIMITS -# ifndef BOOST_PP_FILENAME_2 +# if defined(BOOST_PP_ITERATION_LIMITS) +# if !defined(BOOST_PP_FILENAME_2) # error BOOST_PP: depth #2 filename is not defined # endif -# define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_ITERATION_LIMITS) +# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(0, (BOOST_PP_ITERATION_LIMITS)) # include BOOST_PP_SET_ITERATION_START() -# define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(2, 1, BOOST_PP_ITERATION_LIMITS) +# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(1, (BOOST_PP_ITERATION_LIMITS)) # include BOOST_PP_SET_ITERATION_FINISH() +# if BOOST_PP_ARRAY_SIZE((BOOST_PP_ITERATION_LIMITS)) >= 3 +# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(2, (BOOST_PP_ITERATION_LIMITS)) +# include BOOST_PP_SET_ITERATION_FLAGS() +# else +# define BOOST_PP_ITERATION_FLAGS_2 0 +# endif # undef BOOST_PP_ITERATION_LIMITS # elif defined(BOOST_PP_ITERATION_PARAMS_2) -# define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(3, 0, BOOST_PP_ITERATION_PARAMS_2) +# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(0, (BOOST_PP_ITERATION_PARAMS_2)) # include BOOST_PP_SET_ITERATION_START() -# define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(3, 1, BOOST_PP_ITERATION_PARAMS_2) +# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(1, (BOOST_PP_ITERATION_PARAMS_2)) # include BOOST_PP_SET_ITERATION_FINISH() -# define BOOST_PP_FILENAME_2 BOOST_PP_TUPLE_ELEM(3, 2, BOOST_PP_ITERATION_PARAMS_2) +# define BOOST_PP_FILENAME_2 BOOST_PP_ARRAY_ELEM(2, (BOOST_PP_ITERATION_PARAMS_2)) +# if BOOST_PP_ARRAY_SIZE((BOOST_PP_ITERATION_PARAMS_2)) >= 4 +# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(3, (BOOST_PP_ITERATION_PARAMS_2)) +# include BOOST_PP_SET_ITERATION_FLAGS() +# else +# define BOOST_PP_ITERATION_FLAGS_2 0 +# endif # else -# error BOOST_PP: depth #2 iterations boundaries not defined +# error BOOST_PP: depth #2 iteration boundaries or filename not defined # endif # # if BOOST_PP_ITERATION_DEPTH() != 1 @@ -1331,4 +1343,6 @@ # undef BOOST_PP_ITERATION_FINISH_2 # undef BOOST_PP_FILENAME_2 # +# undef BOOST_PP_ITERATION_FLAGS_2 +# # undef BOOST_PP_ITERATION_PARAMS_2 diff --git a/include/boost/preprocessor/detail/iterate/exp3.hpp b/include/boost/preprocessor/detail/iterate/exp3.hpp index b667931..a9b9674 100644 --- a/include/boost/preprocessor/detail/iterate/exp3.hpp +++ b/include/boost/preprocessor/detail/iterate/exp3.hpp @@ -8,25 +8,37 @@ # * * # ************************************************************************** */ # -# line BOOST_PP_DETAIL_LINE() +# line BOOST_PP_DETAIL_LINE(_) # -# ifdef BOOST_PP_ITERATION_LIMITS -# ifndef BOOST_PP_FILENAME_3 +# if defined(BOOST_PP_ITERATION_LIMITS) +# if !defined(BOOST_PP_FILENAME_3) # error BOOST_PP: depth #3 filename is not defined # endif -# define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_ITERATION_LIMITS) +# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(0, (BOOST_PP_ITERATION_LIMITS)) # include BOOST_PP_SET_ITERATION_START() -# define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(2, 1, BOOST_PP_ITERATION_LIMITS) +# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(1, (BOOST_PP_ITERATION_LIMITS)) # include BOOST_PP_SET_ITERATION_FINISH() +# if BOOST_PP_ARRAY_SIZE((BOOST_PP_ITERATION_LIMITS)) >= 3 +# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(2, (BOOST_PP_ITERATION_LIMITS)) +# include BOOST_PP_SET_ITERATION_FLAGS() +# else +# define BOOST_PP_ITERATION_FLAGS_3 0 +# endif # undef BOOST_PP_ITERATION_LIMITS # elif defined(BOOST_PP_ITERATION_PARAMS_3) -# define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(3, 0, BOOST_PP_ITERATION_PARAMS_3) +# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(0, (BOOST_PP_ITERATION_PARAMS_3)) # include BOOST_PP_SET_ITERATION_START() -# define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(3, 1, BOOST_PP_ITERATION_PARAMS_3) +# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(1, (BOOST_PP_ITERATION_PARAMS_3)) # include BOOST_PP_SET_ITERATION_FINISH() -# define BOOST_PP_FILENAME_3 BOOST_PP_TUPLE_ELEM(3, 2, BOOST_PP_ITERATION_PARAMS_3) +# define BOOST_PP_FILENAME_3 BOOST_PP_ARRAY_ELEM(2, (BOOST_PP_ITERATION_PARAMS_3)) +# if BOOST_PP_ARRAY_SIZE((BOOST_PP_ITERATION_PARAMS_3)) >= 4 +# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(3, (BOOST_PP_ITERATION_PARAMS_3)) +# include BOOST_PP_SET_ITERATION_FLAGS() +# else +# define BOOST_PP_ITERATION_FLAGS_3 0 +# endif # else -# error BOOST_PP: depth #3 iterations boundaries not defined +# error BOOST_PP: depth #3 iteration boundaries or filename not defined # endif # # if BOOST_PP_ITERATION_DEPTH() != 2 @@ -1331,4 +1343,6 @@ # undef BOOST_PP_ITERATION_FINISH_3 # undef BOOST_PP_FILENAME_3 # +# undef BOOST_PP_ITERATION_FLAGS_3 +# # undef BOOST_PP_ITERATION_PARAMS_3 diff --git a/include/boost/preprocessor/detail/iterate/exp4.hpp b/include/boost/preprocessor/detail/iterate/exp4.hpp index 3efa7d6..2520455 100644 --- a/include/boost/preprocessor/detail/iterate/exp4.hpp +++ b/include/boost/preprocessor/detail/iterate/exp4.hpp @@ -8,25 +8,37 @@ # * * # ************************************************************************** */ # -# line BOOST_PP_DETAIL_LINE() +# line BOOST_PP_DETAIL_LINE(_) # -# ifdef BOOST_PP_ITERATION_LIMITS -# ifndef BOOST_PP_FILENAME_4 +# if defined(BOOST_PP_ITERATION_LIMITS) +# if !defined(BOOST_PP_FILENAME_4) # error BOOST_PP: depth #4 filename is not defined # endif -# define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_ITERATION_LIMITS) +# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(0, (BOOST_PP_ITERATION_LIMITS)) # include BOOST_PP_SET_ITERATION_START() -# define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(2, 1, BOOST_PP_ITERATION_LIMITS) +# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(1, (BOOST_PP_ITERATION_LIMITS)) # include BOOST_PP_SET_ITERATION_FINISH() +# if BOOST_PP_ARRAY_SIZE((BOOST_PP_ITERATION_LIMITS)) >= 3 +# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(2, (BOOST_PP_ITERATION_LIMITS)) +# include BOOST_PP_SET_ITERATION_FLAGS() +# else +# define BOOST_PP_ITERATION_FLAGS_4 0 +# endif # undef BOOST_PP_ITERATION_LIMITS # elif defined(BOOST_PP_ITERATION_PARAMS_4) -# define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(3, 0, BOOST_PP_ITERATION_PARAMS_4) +# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(0, (BOOST_PP_ITERATION_PARAMS_4)) # include BOOST_PP_SET_ITERATION_START() -# define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(3, 1, BOOST_PP_ITERATION_PARAMS_4) +# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(1, (BOOST_PP_ITERATION_PARAMS_4)) # include BOOST_PP_SET_ITERATION_FINISH() -# define BOOST_PP_FILENAME_4 BOOST_PP_TUPLE_ELEM(3, 2, BOOST_PP_ITERATION_PARAMS_4) +# define BOOST_PP_FILENAME_4 BOOST_PP_ARRAY_ELEM(2, (BOOST_PP_ITERATION_PARAMS_4)) +# if BOOST_PP_ARRAY_SIZE((BOOST_PP_ITERATION_PARAMS_4)) >= 4 +# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(3, (BOOST_PP_ITERATION_PARAMS_4)) +# include BOOST_PP_SET_ITERATION_FLAGS() +# else +# define BOOST_PP_ITERATION_FLAGS_4 0 +# endif # else -# error BOOST_PP: depth #4 iterations boundaries not defined +# error BOOST_PP: depth #4 iteration boundaries or filename not defined # endif # # if BOOST_PP_ITERATION_DEPTH() != 3 @@ -1331,4 +1343,6 @@ # undef BOOST_PP_ITERATION_FINISH_4 # undef BOOST_PP_FILENAME_4 # +# undef BOOST_PP_ITERATION_FLAGS_4 +# # undef BOOST_PP_ITERATION_PARAMS_4 diff --git a/include/boost/preprocessor/detail/iterate/exp5.hpp b/include/boost/preprocessor/detail/iterate/exp5.hpp index 89fc8be..0ce34db 100644 --- a/include/boost/preprocessor/detail/iterate/exp5.hpp +++ b/include/boost/preprocessor/detail/iterate/exp5.hpp @@ -8,25 +8,37 @@ # * * # ************************************************************************** */ # -# line BOOST_PP_DETAIL_LINE() +# line BOOST_PP_DETAIL_LINE(_) # -# ifdef BOOST_PP_ITERATION_LIMITS -# ifndef BOOST_PP_FILENAME_5 +# if defined(BOOST_PP_ITERATION_LIMITS) +# if !defined(BOOST_PP_FILENAME_5) # error BOOST_PP: depth #5 filename is not defined # endif -# define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_ITERATION_LIMITS) +# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(0, (BOOST_PP_ITERATION_LIMITS)) # include BOOST_PP_SET_ITERATION_START() -# define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(2, 1, BOOST_PP_ITERATION_LIMITS) +# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(1, (BOOST_PP_ITERATION_LIMITS)) # include BOOST_PP_SET_ITERATION_FINISH() +# if BOOST_PP_ARRAY_SIZE((BOOST_PP_ITERATION_LIMITS)) >= 3 +# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(2, (BOOST_PP_ITERATION_LIMITS)) +# include BOOST_PP_SET_ITERATION_FLAGS() +# else +# define BOOST_PP_ITERATION_FLAGS_5 0 +# endif # undef BOOST_PP_ITERATION_LIMITS # elif defined(BOOST_PP_ITERATION_PARAMS_5) -# define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(3, 0, BOOST_PP_ITERATION_PARAMS_5) +# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(0, (BOOST_PP_ITERATION_PARAMS_5)) # include BOOST_PP_SET_ITERATION_START() -# define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(3, 1, BOOST_PP_ITERATION_PARAMS_5) +# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(1, (BOOST_PP_ITERATION_PARAMS_5)) # include BOOST_PP_SET_ITERATION_FINISH() -# define BOOST_PP_FILENAME_5 BOOST_PP_TUPLE_ELEM(3, 2, BOOST_PP_ITERATION_PARAMS_5) +# define BOOST_PP_FILENAME_5 BOOST_PP_ARRAY_ELEM(2, (BOOST_PP_ITERATION_PARAMS_5)) +# if BOOST_PP_ARRAY_SIZE((BOOST_PP_ITERATION_PARAMS_5)) >= 4 +# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(3, (BOOST_PP_ITERATION_PARAMS_5)) +# include BOOST_PP_SET_ITERATION_FLAGS() +# else +# define BOOST_PP_ITERATION_FLAGS_5 0 +# endif # else -# error BOOST_PP: depth #5 iterations boundaries not defined +# error BOOST_PP: depth #5 iteration boundaries or filename not defined # endif # # if BOOST_PP_ITERATION_DEPTH() != 4 @@ -1331,4 +1343,6 @@ # undef BOOST_PP_ITERATION_FINISH_5 # undef BOOST_PP_FILENAME_5 # +# undef BOOST_PP_ITERATION_FLAGS_5 +# # undef BOOST_PP_ITERATION_PARAMS_5