forked from boostorg/preprocessor
MSVC fixes
[SVN r14109]
This commit is contained in:
@ -65,20 +65,32 @@ are directly supported.</p>
|
||||
# define BOOST_PP_REPEAT(COUNT,MACRO,DATA)
|
||||
#endif
|
||||
|
||||
#define BOOST_PP_REPEAT\
|
||||
BOOST_PP_AUTO_REC_CAT1(BOOST_PP_REPEAT,BOOST_PP_REPEAT_AUTO_REC1(BOOST_PP_AUTO_REC_ID,(1)))
|
||||
#define BOOST_PP_REPEATBOOST_PP_REPEAT_AUTO_REC1(M,P)\
|
||||
BOOST_PP_AUTO_REC_CAT2(BOOST_PP_REPEAT,BOOST_PP_REPEAT_AUTO_REC2(BOOST_PP_AUTO_REC_ID,(2)))
|
||||
#define BOOST_PP_REPEATBOOST_PP_REPEAT_AUTO_REC2(M,P)\
|
||||
BOOST_PP_AUTO_REC_CAT3(BOOST_PP_REPEAT,BOOST_PP_REPEAT_AUTO_REC3(BOOST_PP_AUTO_REC_ID,(3)))
|
||||
#define BOOST_PP_REPEATBOOST_PP_REPEAT_AUTO_REC3(M,P)\
|
||||
#if !defined(BOOST_NO_COMPILER_CONFIG) && defined(_MSC_VER)
|
||||
/* This is a workaround for a MSVC++ PP bug. You'll need to add further
|
||||
* BOOST_PP_REPEAT_AUTO_REC3/4/etc. wrapping as the maximum level of
|
||||
* nesting REPEATS increases
|
||||
*/
|
||||
# define BOOST_PP_REPEAT\
|
||||
BOOST_PP_AUTO_REC_CAT1(BOOST_PP_REPEAT_,BOOST_PP_REPEAT_AUTO_REC2(\
|
||||
BOOST_PP_REPEAT_AUTO_REC1,(BOOST_PP_AUTO_REC_ID,(1))\
|
||||
))
|
||||
#else
|
||||
# define BOOST_PP_REPEAT\
|
||||
BOOST_PP_AUTO_REC_CAT1(BOOST_PP_REPEAT_,BOOST_PP_REPEAT_AUTO_REC1(BOOST_PP_AUTO_REC_ID,(1)))
|
||||
#endif
|
||||
|
||||
#define BOOST_PP_REPEAT_BOOST_PP_REPEAT_AUTO_REC1(M,P)\
|
||||
BOOST_PP_AUTO_REC_CAT2(BOOST_PP_REPEAT_,BOOST_PP_REPEAT_AUTO_REC2(BOOST_PP_AUTO_REC_ID,(2)))
|
||||
#define BOOST_PP_REPEAT_BOOST_PP_REPEAT_AUTO_REC2(M,P)\
|
||||
BOOST_PP_AUTO_REC_CAT3(BOOST_PP_REPEAT_,BOOST_PP_REPEAT_AUTO_REC3(BOOST_PP_AUTO_REC_ID,(3)))
|
||||
#define BOOST_PP_REPEAT_BOOST_PP_REPEAT_AUTO_REC3(M,P)\
|
||||
(TOO MANY NESTED REPEATS!)
|
||||
|
||||
#define BOOST_PP_REPEAT_AUTO_REC1(M,P) BOOST_PP_EXPAND(M P)
|
||||
#define BOOST_PP_REPEAT_AUTO_REC2(M,P) BOOST_PP_EXPAND(M P)
|
||||
#define BOOST_PP_REPEAT_AUTO_REC3(M,P) BOOST_PP_EXPAND(M P)
|
||||
|
||||
#define BOOST_PP_REPEAT1(C,M,D) BOOST_PP_REPEAT_AUTO_REC1(BOOST_PP_R1_DELAY(C),(M,D))
|
||||
#define BOOST_PP_REPEAT_1(C,M,D) BOOST_PP_REPEAT_AUTO_REC1(BOOST_PP_R1_DELAY(C),(M,D))
|
||||
#define BOOST_PP_R1_DELAY(C) BOOST_PP_R1_##C
|
||||
#define BOOST_PP_R1_0(M,D)
|
||||
#define BOOST_PP_R1_1(M,D) M(0,D)
|
||||
@ -210,7 +222,7 @@ are directly supported.</p>
|
||||
#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_REPEAT2(C,M,D) BOOST_PP_REPEAT_AUTO_REC2(BOOST_PP_R2_DELAY(C),(M,D))
|
||||
#define BOOST_PP_REPEAT_2(C,M,D) BOOST_PP_REPEAT_AUTO_REC2(BOOST_PP_R2_DELAY(C),(M,D))
|
||||
#define BOOST_PP_R2_DELAY(C) BOOST_PP_R2_##C
|
||||
#define BOOST_PP_R2_0(M,D)
|
||||
#define BOOST_PP_R2_1(M,D) M(0,D)
|
||||
@ -342,7 +354,7 @@ are directly supported.</p>
|
||||
#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_REPEAT3(C,M,D) BOOST_PP_REPEAT_AUTO_REC3(BOOST_PP_R3_DELAY(C),(M,D))
|
||||
#define BOOST_PP_REPEAT_3(C,M,D) BOOST_PP_REPEAT_AUTO_REC3(BOOST_PP_R3_DELAY(C),(M,D))
|
||||
#define BOOST_PP_R3_DELAY(C) BOOST_PP_R3_##C
|
||||
#define BOOST_PP_R3_0(M,D)
|
||||
#define BOOST_PP_R3_1(M,D) M(0,D)
|
||||
|
Reference in New Issue
Block a user