diff --git a/include/boost/preprocessor/config/limits.hpp b/include/boost/preprocessor/config/limits.hpp index e2640de..6cd8b13 100644 --- a/include/boost/preprocessor/config/limits.hpp +++ b/include/boost/preprocessor/config/limits.hpp @@ -38,6 +38,7 @@ # define BOOST_PP_LIMIT_WHILE 256 # else # define BOOST_PP_LIMIT_WHILE BOOST_PP_LIMIT_MAG +# define BOOST_PP_LIMIT_SEQ BOOST_PP_LIMIT_MAG # endif # else # define BOOST_PP_LIMIT_MAG 256 @@ -48,6 +49,8 @@ # if !(BOOST_PP_LIMIT_VARIADIC == 64 || BOOST_PP_LIMIT_VARIADIC == 128 || BOOST_PP_LIMIT_VARIADIC == 256) # undef BOOST_PP_LIMIT_VARIADIC # define BOOST_PP_LIMIT_VARIADIC 64 +# else +# define BOOST_PP_LIMIT_TUPLE BOOST_PP_LIMIT_VARIADIC # endif # else # define BOOST_PP_LIMIT_VARIADIC 64 diff --git a/test/Jamfile.v2 b/test/Jamfile.v2 index 89257e2..8248520 100644 --- a/test/Jamfile.v2 +++ b/test/Jamfile.v2 @@ -90,8 +90,42 @@ alias preprocessor_number_512 [ compile slot.cpp : BOOST_PP_LIMIT_MAG=512 : slot_num ] [ compile stringize.cpp : BOOST_PP_LIMIT_MAG=512 : stringize_num ] [ compile tuple.cpp : BOOST_PP_LIMIT_MAG=512 : tuple_num ] + [ compile variadic.cpp : BOOST_PP_LIMIT_MAG=512 : variadic_num ] + ; +alias preprocessor_v_128 + : + [ compile array.cpp : BOOST_PP_LIMIT_VARIADIC=128 : array_v_128 ] + [ compile tuple.cpp : BOOST_PP_LIMIT_VARIADIC=128 : tuple_v_128 ] + [ compile variadic.cpp : BOOST_PP_LIMIT_VARIADIC=128 : variadic_v_128 ] + ; + +alias preprocessor_v_256 + : + [ compile array.cpp : BOOST_PP_LIMIT_VARIADIC=256 : array_v_256 ] + [ compile tuple.cpp : BOOST_PP_LIMIT_VARIADIC=256 : tuple_v_256 ] + [ compile variadic.cpp : BOOST_PP_LIMIT_VARIADIC=256 : variadic_v_256 ] + ; + +alias preprocessor_v_128_c + : + [ compile array.c : BOOST_PP_LIMIT_VARIADIC=128 : array_v_128_c ] + [ compile tuple.c : BOOST_PP_LIMIT_VARIADIC=128 : tuple_v_128_c ] + [ compile variadic.c : BOOST_PP_LIMIT_VARIADIC=128 : variadic_v_128_c ] + ; + +#| + +alias preprocessor_v_256_c + : + [ compile array.c : BOOST_PP_LIMIT_VARIADIC=256 : array_v_256_c ] + [ compile tuple.c : BOOST_PP_LIMIT_VARIADIC=256 : tuple_v_256_c ] + [ compile variadic.c : BOOST_PP_LIMIT_VARIADIC=256 : variadic_v_256_c ] + ; + +|# + alias preprocessor_number_nvm_512 : [ compile arithmetic.cpp : BOOST_PP_LIMIT_MAG=512 BOOST_PP_VARIADICS=0 : arithmetic_nvm_num ] diff --git a/test/variadic.cxx b/test/variadic.cxx index e1a3a15..a3d53a2 100644 --- a/test/variadic.cxx +++ b/test/variadic.cxx @@ -26,6 +26,33 @@ #define VDATA_LARGE 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32 #define VDATA_VERY_LARGE 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63 +#if BOOST_PP_LIMIT_VARIADIC > 64 + +#define VDATA_LARGE_128 \ + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, \ + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95 + +#define VDATA_VERY_LARGE_128 \ + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, \ + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127 + +#endif + +#if BOOST_PP_LIMIT_VARIADIC > 128 + +#define VDATA_LARGE_256 \ + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, \ + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, \ + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138 + +#define VDATA_VERY_LARGE_256 \ + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, \ + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, \ + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, \ + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255 + +#endif + BEGIN BOOST_PP_VARIADIC_ELEM(4,VDATA) == 4 END BEGIN BOOST_PP_VARIADIC_ELEM(6,7,11,3,8,14,85,56,92,165) == 56 END BEGIN BOOST_PP_VARIADIC_ELEM(29,VDATA_LARGE) == 29 END @@ -53,4 +80,51 @@ BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_VARIADIC_TO_TUPLE(0, 1, 2, 3, 4, 5, 6, 7, 8, BEGIN BOOST_PP_TUPLE_ELEM(8,BOOST_PP_VARIADIC_TO_TUPLE(7,11,3,8,14,85,56,92,165)) == 165 END BEGIN BOOST_PP_TUPLE_ELEM(27,BOOST_PP_VARIADIC_TO_TUPLE(VDATA_LARGE)) == 27 END +#if BOOST_PP_LIMIT_VARIADIC > 64 + +BEGIN BOOST_PP_VARIADIC_ELEM(47,VDATA_LARGE_128) == 47 END +BEGIN BOOST_PP_VARIADIC_ELEM(81,VDATA_LARGE_128) == 81 END +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 +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 +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 +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 + +#if BOOST_PP_LIMIT_VARIADIC > 128 + +BEGIN BOOST_PP_VARIADIC_ELEM(47,VDATA_LARGE_256) == 47 END +BEGIN BOOST_PP_VARIADIC_ELEM(110,VDATA_LARGE_256) == 110 END +BEGIN BOOST_PP_VARIADIC_ELEM(135,VDATA_LARGE_256) == 135 END +BEGIN BOOST_PP_VARIADIC_ELEM(36,VDATA_VERY_LARGE_256) == 36 END +BEGIN BOOST_PP_VARIADIC_ELEM(95,VDATA_VERY_LARGE_256) == 95 END +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 +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 +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 +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