From 5d70c1fc7b8c0f68738842d211f71b01c9ba03fa Mon Sep 17 00:00:00 2001 From: Edward Diener Date: Sun, 23 Aug 2020 20:08:38 -0400 Subject: [PATCH] Corrected limit. Added BOOST_PP_IS_STANDARD macro. Updated variadic tests. --- include/boost/preprocessor/config/config.hpp | 6 +++++ include/boost/preprocessor/config/limits.hpp | 26 +++----------------- test/variadic.cxx | 22 +++++++++++++++++ 3 files changed, 32 insertions(+), 22 deletions(-) diff --git a/include/boost/preprocessor/config/config.hpp b/include/boost/preprocessor/config/config.hpp index 2c7ece9..8ef57ae 100644 --- a/include/boost/preprocessor/config/config.hpp +++ b/include/boost/preprocessor/config/config.hpp @@ -112,4 +112,10 @@ # define BOOST_PP_VARIADICS 0 # endif # +# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT() +# define BOOST_PP_IS_STANDARD() 1 +# else +# define BOOST_PP_IS_STANDARD() 0 +# endif +# # endif diff --git a/include/boost/preprocessor/config/limits.hpp b/include/boost/preprocessor/config/limits.hpp index 93a241b..b5ba80e 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,33 +72,15 @@ # 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 +# define BOOST_PP_LIMIT_WHILE 256 # 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) # define BOOST_PP_LIMIT_SEQ BOOST_PP_LIMIT_MAG # endif # 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 # diff --git a/test/variadic.cxx b/test/variadic.cxx index a3d53a2..929bd21 100644 --- a/test/variadic.cxx +++ b/test/variadic.cxx @@ -88,20 +88,31 @@ BEGIN BOOST_PP_VARIADIC_ELEM(29,VDATA_VERY_LARGE_128) == 29 END BEGIN BOOST_PP_VARIADIC_ELEM(112,VDATA_VERY_LARGE_128) == 112 END BEGIN BOOST_PP_VARIADIC_SIZE(VDATA_LARGE_128) == 96 END BEGIN BOOST_PP_VARIADIC_SIZE(VDATA_VERY_LARGE_128) == 128 END + +#if BOOST_PP_LIMIT_TUPLE > 64 + BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_VARIADIC_TO_ARRAY(VDATA_LARGE_128)) == 96 END BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_VARIADIC_TO_ARRAY(VDATA_VERY_LARGE_128)) == 128 END BEGIN BOOST_PP_ARRAY_ELEM(83,BOOST_PP_VARIADIC_TO_ARRAY(VDATA_LARGE_128)) == 83 END BEGIN BOOST_PP_ARRAY_ELEM(117,BOOST_PP_VARIADIC_TO_ARRAY(VDATA_VERY_LARGE_128)) == 117 END + +#endif + BEGIN BOOST_PP_LIST_AT(BOOST_PP_VARIADIC_TO_LIST(VDATA_LARGE_128),79) == 79 END BEGIN BOOST_PP_LIST_SIZE(BOOST_PP_VARIADIC_TO_LIST(VDATA_VERY_LARGE_128)) == 128 END BEGIN BOOST_PP_SEQ_ELEM(113,BOOST_PP_VARIADIC_TO_SEQ(VDATA_VERY_LARGE_128)) == 113 END BEGIN BOOST_PP_SEQ_ELEM(82,BOOST_PP_VARIADIC_TO_SEQ(VDATA_LARGE_128)) == 82 END BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_VARIADIC_TO_SEQ(VDATA_LARGE_128)) == 96 END + +#if BOOST_PP_LIMIT_TUPLE > 64 + BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_VARIADIC_TO_TUPLE(VDATA_VERY_LARGE_128)) == 128 END BEGIN BOOST_PP_TUPLE_ELEM(77,BOOST_PP_VARIADIC_TO_TUPLE(VDATA_LARGE_128)) == 77 END #endif +#endif + #if BOOST_PP_LIMIT_VARIADIC > 128 BEGIN BOOST_PP_VARIADIC_ELEM(47,VDATA_LARGE_256) == 47 END @@ -113,18 +124,29 @@ BEGIN BOOST_PP_VARIADIC_ELEM(161,VDATA_VERY_LARGE_256) == 161 END BEGIN BOOST_PP_VARIADIC_ELEM(217,VDATA_VERY_LARGE_256) == 217 END BEGIN BOOST_PP_VARIADIC_SIZE(VDATA_LARGE_256) == 139 END BEGIN BOOST_PP_VARIADIC_SIZE(VDATA_VERY_LARGE_256) == 256 END + +#if BOOST_PP_LIMIT_TUPLE > 128 + BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_VARIADIC_TO_ARRAY(VDATA_LARGE_256)) == 139 END BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_VARIADIC_TO_ARRAY(VDATA_VERY_LARGE_256)) == 256 END BEGIN BOOST_PP_ARRAY_ELEM(133,BOOST_PP_VARIADIC_TO_ARRAY(VDATA_LARGE_256)) == 133 END BEGIN BOOST_PP_ARRAY_ELEM(203,BOOST_PP_VARIADIC_TO_ARRAY(VDATA_VERY_LARGE_256)) == 203 END + +#endif + BEGIN BOOST_PP_LIST_AT(BOOST_PP_VARIADIC_TO_LIST(VDATA_LARGE_256),137) == 137 END BEGIN BOOST_PP_LIST_SIZE(BOOST_PP_VARIADIC_TO_LIST(VDATA_VERY_LARGE_256)) == 256 END BEGIN BOOST_PP_SEQ_ELEM(212,BOOST_PP_VARIADIC_TO_SEQ(VDATA_VERY_LARGE_256)) == 212 END BEGIN BOOST_PP_SEQ_ELEM(129,BOOST_PP_VARIADIC_TO_SEQ(VDATA_LARGE_256)) == 129 END BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_VARIADIC_TO_SEQ(VDATA_LARGE_256)) == 139 END + +#if BOOST_PP_LIMIT_TUPLE > 128 + BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_VARIADIC_TO_TUPLE(VDATA_VERY_LARGE_256)) == 256 END BEGIN BOOST_PP_TUPLE_ELEM(133,BOOST_PP_VARIADIC_TO_TUPLE(VDATA_LARGE_256)) == 133 END #endif #endif + +#endif