From bcd091a8dd6dfa780428d061353cbe62487f0a67 Mon Sep 17 00:00:00 2001 From: Paul Mensonides Date: Wed, 19 Jun 2002 06:38:43 +0000 Subject: [PATCH] add support for unrolled BOOST_PP_REPEAT undef EDG front-ends [SVN r14177] --- include/boost/preprocessor/repeat.hpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/include/boost/preprocessor/repeat.hpp b/include/boost/preprocessor/repeat.hpp index bbc5c36..8a6cf9f 100644 --- a/include/boost/preprocessor/repeat.hpp +++ b/include/boost/preprocessor/repeat.hpp @@ -92,6 +92,14 @@ are directly supported.

#define BOOST_PP_REPEAT_AUTO_REC3(M,P) BOOST_PP_EXPAND(M P) #define BOOST_PP_REPEAT_1(C,M,D) BOOST_PP_REPEAT_AUTO_REC1(BOOST_PP_DETAIL_CAT2(BOOST_PP_R1_,C),(M,D)) +#define BOOST_PP_REPEAT_2(C,M,D) BOOST_PP_REPEAT_AUTO_REC2(BOOST_PP_DETAIL_CAT2(BOOST_PP_R2_,C),(M,D)) +#define BOOST_PP_REPEAT_3(C,M,D) BOOST_PP_REPEAT_AUTO_REC3(BOOST_PP_DETAIL_CAT2(BOOST_PP_R3_,C),(M,D)) + +#if defined __EDG__ // unrolled repeats for EDG front end +#include +#else +#error edg? + #define BOOST_PP_R1_0(M,D) #define BOOST_PP_R1_1(M,D) M(0,D) #define BOOST_PP_R1_2(M,D) M(0,D) M(1,D) @@ -222,7 +230,6 @@ are directly supported.

#define BOOST_PP_R1_127(M,D) BOOST_PP_R1_126(M,D) M(126,D) #define BOOST_PP_R1_128(M,D) BOOST_PP_R1_127(M,D) M(127,D) -#define BOOST_PP_REPEAT_2(C,M,D) BOOST_PP_REPEAT_AUTO_REC2(BOOST_PP_DETAIL_CAT2(BOOST_PP_R2_,C),(M,D)) #define BOOST_PP_R2_0(M,D) #define BOOST_PP_R2_1(M,D) M(0,D) #define BOOST_PP_R2_2(M,D) M(0,D) M(1,D) @@ -353,7 +360,6 @@ are directly supported.

#define BOOST_PP_R2_127(M,D) BOOST_PP_R2_126(M,D) M(126,D) #define BOOST_PP_R2_128(M,D) BOOST_PP_R2_127(M,D) M(127,D) -#define BOOST_PP_REPEAT_3(C,M,D) BOOST_PP_REPEAT_AUTO_REC3(BOOST_PP_DETAIL_CAT2(BOOST_PP_R3_,C),(M,D)) #define BOOST_PP_R3_0(M,D) #define BOOST_PP_R3_1(M,D) M(0,D) #define BOOST_PP_R3_2(M,D) M(0,D) M(1,D) @@ -484,6 +490,8 @@ are directly supported.

#define BOOST_PP_R3_127(M,D) BOOST_PP_R3_126(M,D) M(126,D) #define BOOST_PP_R3_128(M,D) BOOST_PP_R3_127(M,D) M(127,D) +#endif // !__EDG__ + /**

Obsolete, just use BOOST_PP_REPEAT().

*/ #define BOOST_PP_REPEAT_2ND BOOST_PP_REPEAT /**

Obsolete, just use BOOST_PP_REPEAT().

*/