From fd3b57b15a7ae07d1dfc7c3204243403ed394a22 Mon Sep 17 00:00:00 2001 From: Edward Diener Date: Mon, 4 May 2020 18:44:20 -0400 Subject: [PATCH] Added arithmetic testing for numbers up to 512. Corrected seq macro which does not expect a number above 256. --- include/boost/preprocessor/seq/rest_n.hpp | 12 +++++++++--- test/Jamfile.v2 | 19 +++++++++++++++++++ 2 files changed, 28 insertions(+), 3 deletions(-) diff --git a/include/boost/preprocessor/seq/rest_n.hpp b/include/boost/preprocessor/seq/rest_n.hpp index cac52cf..1d6b628 100644 --- a/include/boost/preprocessor/seq/rest_n.hpp +++ b/include/boost/preprocessor/seq/rest_n.hpp @@ -15,7 +15,7 @@ # include # include # include -# include +# include # include # include # include @@ -31,16 +31,22 @@ # define BOOST_PP_SEQ_REST_N_I(n, seq) BOOST_PP_SEQ_REST_N_DETAIL_EXEC(n, seq, BOOST_PP_SEQ_DETAIL_EMPTY_SIZE(seq)) # endif # +# define BOOST_PP_SEQ_REST_N_DETAIL_EXEC_NO_MATCH(n, seq) +# define BOOST_PP_SEQ_REST_N_DETAIL_EXEC_MATCH(n, seq) \ + BOOST_PP_TUPLE_ELEM(2, 1, BOOST_PP_SEQ_SPLIT(BOOST_PP_INC(n), BOOST_PP_IDENTITY( (nil) seq )))() \ +/**/ # define BOOST_PP_SEQ_REST_N_DETAIL_EXEC(n, seq, size) \ - BOOST_PP_EXPR_IIF \ + BOOST_PP_IIF \ ( \ BOOST_PP_BITAND \ ( \ BOOST_PP_SEQ_DETAIL_IS_NOT_EMPTY_SIZE(size), \ BOOST_PP_NOT_EQUAL(n,size) \ ), \ - BOOST_PP_TUPLE_ELEM(2, 1, BOOST_PP_SEQ_SPLIT(BOOST_PP_INC(n), BOOST_PP_IDENTITY( (nil) seq )))() \ + BOOST_PP_SEQ_REST_N_DETAIL_EXEC_MATCH, \ + BOOST_PP_SEQ_REST_N_DETAIL_EXEC_NO_MATCH \ ) \ + (n, seq) \ /**/ # # endif diff --git a/test/Jamfile.v2 b/test/Jamfile.v2 index 2a36f9a..985a83d 100644 --- a/test/Jamfile.v2 +++ b/test/Jamfile.v2 @@ -92,6 +92,25 @@ alias preprocessor_number_512 [ compile tuple.cpp : BOOST_PP_LIMIT_MAG=512 : tuple_num ] ; +alias preprocessor_number_nvm_512 + : + [ compile arithmetic.cpp : BOOST_PP_LIMIT_MAG=512 BOOST_PP_VARIADICS=0 : arithmetic_nvm_num ] + [ compile array.cpp : BOOST_PP_LIMIT_MAG=512 BOOST_PP_VARIADICS=0 : array_nvm_num ] + [ compile comparison.cpp : BOOST_PP_LIMIT_MAG=512 BOOST_PP_VARIADICS=0 : comparison_nvm_num ] + [ compile control.cpp : BOOST_PP_LIMIT_MAG=512 BOOST_PP_VARIADICS=0 : control_nvm_num ] + [ compile debug.cpp : BOOST_PP_LIMIT_MAG=512 BOOST_PP_VARIADICS=0 : debug_nvm_num ] + [ compile facilities.cpp : BOOST_PP_LIMIT_MAG=512 BOOST_PP_VARIADICS=0 : facilities_nvm_num ] + [ compile iteration.cpp : BOOST_PP_LIMIT_MAG=512 BOOST_PP_VARIADICS=0 : iteration_nvm_num ] + [ compile list.cpp : BOOST_PP_LIMIT_MAG=512 BOOST_PP_VARIADICS=0 : list_nvm_num ] + [ compile logical.cpp : BOOST_PP_LIMIT_MAG=512 BOOST_PP_VARIADICS=0 : logical_nvm_num ] + [ compile repetition.cpp : BOOST_PP_LIMIT_MAG=512 BOOST_PP_VARIADICS=0 : repetition_nvm_num ] + [ compile selection.cpp : BOOST_PP_LIMIT_MAG=512 BOOST_PP_VARIADICS=0 : selection_nvm_num ] + [ compile seq.cpp : BOOST_PP_LIMIT_MAG=512 BOOST_PP_VARIADICS=0 : seq_nvm_num ] + [ compile slot.cpp : BOOST_PP_LIMIT_MAG=512 BOOST_PP_VARIADICS=0 : slot_nvm_num ] + [ compile stringize.cpp : BOOST_PP_LIMIT_MAG=512 BOOST_PP_VARIADICS=0 : stringize_nvm_num ] + [ compile tuple.cpp : BOOST_PP_LIMIT_MAG=512 BOOST_PP_VARIADICS=0 : tuple_nvm_num ] + ; + alias preprocessor_c : [ compile arithmetic.c