forked from boostorg/preprocessor
Removed MWCW version number test from workarounds
[SVN r13166]
This commit is contained in:
@ -37,7 +37,7 @@ single token).</p>
|
|||||||
|
|
||||||
/** <p>Can be used inside BOOST_PP_WHILE().</p> */
|
/** <p>Can be used inside BOOST_PP_WHILE().</p> */
|
||||||
#define BOOST_PP_ADD_D(D,X,Y) BOOST_PP_TUPLE_ELEM(2,0,BOOST_PP_WHILE##D(BOOST_PP_ADD_C,BOOST_PP_ADD_F,(X,Y)))
|
#define BOOST_PP_ADD_D(D,X,Y) BOOST_PP_TUPLE_ELEM(2,0,BOOST_PP_WHILE##D(BOOST_PP_ADD_C,BOOST_PP_ADD_F,(X,Y)))
|
||||||
#if !defined(BOOST_NO_COMPILER_CONFIG) && defined(__MWERKS__) && __MWERKS__ <= 0x2406
|
#if !defined(BOOST_NO_COMPILER_CONFIG) && defined(__MWERKS__)
|
||||||
# define BOOST_PP_ADD_C(D,P) BOOST_PP_TUPLE_ELEM(2,1,P)
|
# define BOOST_PP_ADD_C(D,P) BOOST_PP_TUPLE_ELEM(2,1,P)
|
||||||
# define BOOST_PP_ADD_F(D,P) (BOOST_PP_INC(BOOST_PP_TUPLE_ELEM(2,0,P)),BOOST_PP_DEC(BOOST_PP_TUPLE_ELEM(2,1,P)))
|
# define BOOST_PP_ADD_F(D,P) (BOOST_PP_INC(BOOST_PP_TUPLE_ELEM(2,0,P)),BOOST_PP_DEC(BOOST_PP_TUPLE_ELEM(2,1,P)))
|
||||||
#else
|
#else
|
||||||
|
@ -35,7 +35,7 @@ single token).</p>
|
|||||||
|
|
||||||
/** <p>Can be used inside BOOST_PP_WHILE().</p> */
|
/** <p>Can be used inside BOOST_PP_WHILE().</p> */
|
||||||
#define BOOST_PP_DIV_D(D,X,Y) BOOST_PP_TUPLE_ELEM(3,0,BOOST_PP_WHILE##D(BOOST_PP_DIV_C,BOOST_PP_DIV_F,(0,X,Y)))
|
#define BOOST_PP_DIV_D(D,X,Y) BOOST_PP_TUPLE_ELEM(3,0,BOOST_PP_WHILE##D(BOOST_PP_DIV_C,BOOST_PP_DIV_F,(0,X,Y)))
|
||||||
#if !defined(BOOST_NO_COMPILER_CONFIG) && defined(__MWERKS__) && __MWERKS__ <= 0x2406
|
#if !defined(BOOST_NO_COMPILER_CONFIG) && defined(__MWERKS__)
|
||||||
# define BOOST_PP_DIV_C(D,P) BOOST_PP_LESS_EQUAL_D(D,BOOST_PP_TUPLE_ELEM(3,2,P),BOOST_PP_TUPLE_ELEM(3,1,P))
|
# define BOOST_PP_DIV_C(D,P) BOOST_PP_LESS_EQUAL_D(D,BOOST_PP_TUPLE_ELEM(3,2,P),BOOST_PP_TUPLE_ELEM(3,1,P))
|
||||||
# define BOOST_PP_DIV_F(D,P) (BOOST_PP_INC(BOOST_PP_TUPLE_ELEM(3,0,P)),BOOST_PP_SUB_D(D,BOOST_PP_TUPLE_ELEM(3,1,P),BOOST_PP_TUPLE_ELEM(3,2,P)),BOOST_PP_TUPLE_ELEM(3,2,P))
|
# define BOOST_PP_DIV_F(D,P) (BOOST_PP_INC(BOOST_PP_TUPLE_ELEM(3,0,P)),BOOST_PP_SUB_D(D,BOOST_PP_TUPLE_ELEM(3,1,P),BOOST_PP_TUPLE_ELEM(3,2,P)),BOOST_PP_TUPLE_ELEM(3,2,P))
|
||||||
#else
|
#else
|
||||||
|
@ -34,7 +34,7 @@ single token).</p>
|
|||||||
|
|
||||||
/** <p>Can be used inside BOOST_PP_WHILE().</p> */
|
/** <p>Can be used inside BOOST_PP_WHILE().</p> */
|
||||||
#define BOOST_PP_MUL_D(D,X,Y) BOOST_PP_TUPLE_ELEM(3,0,BOOST_PP_WHILE##D(BOOST_PP_MUL_C,BOOST_PP_MUL_F,(0,X,Y)))
|
#define BOOST_PP_MUL_D(D,X,Y) BOOST_PP_TUPLE_ELEM(3,0,BOOST_PP_WHILE##D(BOOST_PP_MUL_C,BOOST_PP_MUL_F,(0,X,Y)))
|
||||||
#if !defined(BOOST_NO_COMPILER_CONFIG) && defined(__MWERKS__) && __MWERKS__ <= 0x2406
|
#if !defined(BOOST_NO_COMPILER_CONFIG) && defined(__MWERKS__)
|
||||||
# define BOOST_PP_MUL_C(D,P) BOOST_PP_TUPLE_ELEM(3,2,P)
|
# define BOOST_PP_MUL_C(D,P) BOOST_PP_TUPLE_ELEM(3,2,P)
|
||||||
# define BOOST_PP_MUL_F(D,P) (BOOST_PP_ADD_D(D,BOOST_PP_TUPLE_ELEM(3,0,P),BOOST_PP_TUPLE_ELEM(3,1,P)),BOOST_PP_TUPLE_ELEM(3,1,P),BOOST_PP_DEC(BOOST_PP_TUPLE_ELEM(3,2,P)))
|
# define BOOST_PP_MUL_F(D,P) (BOOST_PP_ADD_D(D,BOOST_PP_TUPLE_ELEM(3,0,P),BOOST_PP_TUPLE_ELEM(3,1,P)),BOOST_PP_TUPLE_ELEM(3,1,P),BOOST_PP_DEC(BOOST_PP_TUPLE_ELEM(3,2,P)))
|
||||||
#else
|
#else
|
||||||
|
@ -36,7 +36,7 @@ single token).</p>
|
|||||||
|
|
||||||
/** <p>Can be used inside BOOST_PP_WHILE().</p> */
|
/** <p>Can be used inside BOOST_PP_WHILE().</p> */
|
||||||
#define BOOST_PP_SUB_D(D,X,Y) BOOST_PP_TUPLE_ELEM(2,0,BOOST_PP_WHILE##D(BOOST_PP_SUB_C,BOOST_PP_SUB_F,(X,Y)))
|
#define BOOST_PP_SUB_D(D,X,Y) BOOST_PP_TUPLE_ELEM(2,0,BOOST_PP_WHILE##D(BOOST_PP_SUB_C,BOOST_PP_SUB_F,(X,Y)))
|
||||||
#if !defined(BOOST_NO_COMPILER_CONFIG) && defined(__MWERKS__) && __MWERKS__ <= 0x2406
|
#if !defined(BOOST_NO_COMPILER_CONFIG) && defined(__MWERKS__)
|
||||||
# define BOOST_PP_SUB_C(D,P) BOOST_PP_TUPLE_ELEM(2,1,P)
|
# define BOOST_PP_SUB_C(D,P) BOOST_PP_TUPLE_ELEM(2,1,P)
|
||||||
# define BOOST_PP_SUB_F(D,P) (BOOST_PP_DEC(BOOST_PP_TUPLE_ELEM(2,0,P)),BOOST_PP_DEC(BOOST_PP_TUPLE_ELEM(2,1,P)))
|
# define BOOST_PP_SUB_F(D,P) (BOOST_PP_DEC(BOOST_PP_TUPLE_ELEM(2,0,P)),BOOST_PP_DEC(BOOST_PP_TUPLE_ELEM(2,1,P)))
|
||||||
#else
|
#else
|
||||||
|
@ -51,7 +51,7 @@
|
|||||||
*/
|
*/
|
||||||
#define BOOST_PP_ENUM(N,F,P) BOOST_PP_REPEAT(N,BOOST_PP_ENUM_F,(F,P))
|
#define BOOST_PP_ENUM(N,F,P) BOOST_PP_REPEAT(N,BOOST_PP_ENUM_F,(F,P))
|
||||||
|
|
||||||
#if !defined(BOOST_NO_COMPILER_CONFIG) && defined(__MWERKS__) && __MWERKS__ <= 0x2406
|
#if !defined(BOOST_NO_COMPILER_CONFIG) && defined(__MWERKS__)
|
||||||
# define BOOST_PP_ENUM_F(I,FP) BOOST_PP_COMMA_IF(I) BOOST_PP_TUPLE_ELEM(2,0,FP)(I,BOOST_PP_TUPLE_ELEM(2,1,FP))
|
# define BOOST_PP_ENUM_F(I,FP) BOOST_PP_COMMA_IF(I) BOOST_PP_TUPLE_ELEM(2,0,FP)(I,BOOST_PP_TUPLE_ELEM(2,1,FP))
|
||||||
#else
|
#else
|
||||||
# define BOOST_PP_ENUM_F(I,FP) BOOST_PP_COMMA_IF(I) BOOST_PP_TUPLE2_ELEM0 FP(I,BOOST_PP_TUPLE2_ELEM1 FP)
|
# define BOOST_PP_ENUM_F(I,FP) BOOST_PP_COMMA_IF(I) BOOST_PP_TUPLE2_ELEM0 FP(I,BOOST_PP_TUPLE2_ELEM1 FP)
|
||||||
|
@ -48,7 +48,7 @@
|
|||||||
*/
|
*/
|
||||||
#define BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT(N,P,D) BOOST_PP_ENUM(N,BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT_F,(P,D))
|
#define BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT(N,P,D) BOOST_PP_ENUM(N,BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT_F,(P,D))
|
||||||
|
|
||||||
#if !defined(BOOST_NO_COMPILER_CONFIG) && defined(__MWERKS__) && __MWERKS__ <= 0x2406
|
#if !defined(BOOST_NO_COMPILER_CONFIG) && defined(__MWERKS__)
|
||||||
# define BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT_F(I,PD) BOOST_PP_CAT(BOOST_PP_TUPLE_ELEM(2,0,PD),I)=BOOST_PP_TUPLE_ELEM(2,1,PD)
|
# define BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT_F(I,PD) BOOST_PP_CAT(BOOST_PP_TUPLE_ELEM(2,0,PD),I)=BOOST_PP_TUPLE_ELEM(2,1,PD)
|
||||||
#else
|
#else
|
||||||
# define BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT_F(I,PD) BOOST_PP_CAT(BOOST_PP_TUPLE2_ELEM0 PD,I)=BOOST_PP_TUPLE2_ELEM1 PD
|
# define BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT_F(I,PD) BOOST_PP_CAT(BOOST_PP_TUPLE2_ELEM0 PD,I)=BOOST_PP_TUPLE2_ELEM1 PD
|
||||||
|
@ -51,7 +51,7 @@
|
|||||||
*/
|
*/
|
||||||
#define BOOST_PP_ENUM_PARAMS_WITH_DEFAULTS(N,P,D) BOOST_PP_ENUM(N,BOOST_PP_ENUM_PARAMS_WITH_DEFAULTS_F,(P,D))
|
#define BOOST_PP_ENUM_PARAMS_WITH_DEFAULTS(N,P,D) BOOST_PP_ENUM(N,BOOST_PP_ENUM_PARAMS_WITH_DEFAULTS_F,(P,D))
|
||||||
|
|
||||||
#if !defined(BOOST_NO_COMPILER_CONFIG) && defined(__MWERKS__) && __MWERKS__ <= 0x2406
|
#if !defined(BOOST_NO_COMPILER_CONFIG) && defined(__MWERKS__)
|
||||||
# define BOOST_PP_ENUM_PARAMS_WITH_DEFAULTS_F(I,PD) BOOST_PP_CAT(BOOST_PP_TUPLE_ELEM(2,0,PD),I)=BOOST_PP_CAT(BOOST_PP_TUPLE_ELEM(2,1,PD),I)
|
# define BOOST_PP_ENUM_PARAMS_WITH_DEFAULTS_F(I,PD) BOOST_PP_CAT(BOOST_PP_TUPLE_ELEM(2,0,PD),I)=BOOST_PP_CAT(BOOST_PP_TUPLE_ELEM(2,1,PD),I)
|
||||||
#else
|
#else
|
||||||
# define BOOST_PP_ENUM_PARAMS_WITH_DEFAULTS_F(I,PD) BOOST_PP_CAT(BOOST_PP_TUPLE2_ELEM0 PD,I)=BOOST_PP_CAT(BOOST_PP_TUPLE2_ELEM1 PD,I)
|
# define BOOST_PP_ENUM_PARAMS_WITH_DEFAULTS_F(I,PD) BOOST_PP_CAT(BOOST_PP_TUPLE2_ELEM0 PD,I)=BOOST_PP_CAT(BOOST_PP_TUPLE2_ELEM1 PD,I)
|
||||||
|
@ -46,7 +46,7 @@
|
|||||||
*/
|
*/
|
||||||
#define BOOST_PP_ENUM_SHIFTED(N,F,P) BOOST_PP_ENUM(BOOST_PP_DEC(N),BOOST_PP_ENUM_SHIFTED_F,(F,P))
|
#define BOOST_PP_ENUM_SHIFTED(N,F,P) BOOST_PP_ENUM(BOOST_PP_DEC(N),BOOST_PP_ENUM_SHIFTED_F,(F,P))
|
||||||
|
|
||||||
#if !defined(BOOST_NO_COMPILER_CONFIG) && defined(__MWERKS__) && __MWERKS__ <= 0x2406
|
#if !defined(BOOST_NO_COMPILER_CONFIG) && defined(__MWERKS__)
|
||||||
# define BOOST_PP_ENUM_SHIFTED_F(I,FP) BOOST_PP_TUPLE_ELEM(2,0,FP)(BOOST_PP_INC(I),BOOST_PP_TUPLE_ELEM(2,1,FP))
|
# define BOOST_PP_ENUM_SHIFTED_F(I,FP) BOOST_PP_TUPLE_ELEM(2,0,FP)(BOOST_PP_INC(I),BOOST_PP_TUPLE_ELEM(2,1,FP))
|
||||||
#else
|
#else
|
||||||
# define BOOST_PP_ENUM_SHIFTED_F(I,FP) BOOST_PP_TUPLE2_ELEM0 FP(BOOST_PP_INC(I),BOOST_PP_TUPLE2_ELEM1 FP)
|
# define BOOST_PP_ENUM_SHIFTED_F(I,FP) BOOST_PP_TUPLE2_ELEM0 FP(BOOST_PP_INC(I),BOOST_PP_TUPLE2_ELEM1 FP)
|
||||||
|
@ -70,14 +70,14 @@ and BOOST_PP_LIST_FOLD_RIGHT_2ND():</p>
|
|||||||
#define BOOST_PP_LIST_NIL (_,_,0)
|
#define BOOST_PP_LIST_NIL (_,_,0)
|
||||||
|
|
||||||
/** <p>Expands to 1 if the list is not nil and 0 otherwise.</p> */
|
/** <p>Expands to 1 if the list is not nil and 0 otherwise.</p> */
|
||||||
#if !defined(BOOST_NO_COMPILER_CONFIG) && defined(__MWERKS__) && __MWERKS__ <= 0x2406
|
#if !defined(BOOST_NO_COMPILER_CONFIG) && defined(__MWERKS__)
|
||||||
# define BOOST_PP_LIST_IS_CONS(L) BOOST_PP_TUPLE_ELEM(3,2,L)
|
# define BOOST_PP_LIST_IS_CONS(L) BOOST_PP_TUPLE_ELEM(3,2,L)
|
||||||
#else
|
#else
|
||||||
# define BOOST_PP_LIST_IS_CONS(L) BOOST_PP_TUPLE3_ELEM2 L
|
# define BOOST_PP_LIST_IS_CONS(L) BOOST_PP_TUPLE3_ELEM2 L
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/** <p>Expands to 1 if the list is nil and 0 otherwise.</p> */
|
/** <p>Expands to 1 if the list is nil and 0 otherwise.</p> */
|
||||||
#if !defined(BOOST_NO_COMPILER_CONFIG) && defined(__MWERKS__) && __MWERKS__ <= 0x2406
|
#if !defined(BOOST_NO_COMPILER_CONFIG) && defined(__MWERKS__)
|
||||||
# define BOOST_PP_LIST_IS_NIL(L) BOOST_PP_NOT(BOOST_PP_TUPLE_ELEM(3,2,L))
|
# define BOOST_PP_LIST_IS_NIL(L) BOOST_PP_NOT(BOOST_PP_TUPLE_ELEM(3,2,L))
|
||||||
#else
|
#else
|
||||||
# define BOOST_PP_LIST_IS_NIL(L) BOOST_PP_NOT(BOOST_PP_TUPLE3_ELEM2 L)
|
# define BOOST_PP_LIST_IS_NIL(L) BOOST_PP_NOT(BOOST_PP_TUPLE3_ELEM2 L)
|
||||||
@ -93,7 +93,7 @@ and BOOST_PP_LIST_FOLD_RIGHT_2ND():</p>
|
|||||||
|
|
||||||
<p>expands to 1.</p>
|
<p>expands to 1.</p>
|
||||||
*/
|
*/
|
||||||
#if !defined(BOOST_NO_COMPILER_CONFIG) && defined(__MWERKS__) && __MWERKS__ <= 0x2406
|
#if !defined(BOOST_NO_COMPILER_CONFIG) && defined(__MWERKS__)
|
||||||
# define BOOST_PP_LIST_FIRST(L) BOOST_PP_TUPLE_ELEM(3,0,L)
|
# define BOOST_PP_LIST_FIRST(L) BOOST_PP_TUPLE_ELEM(3,0,L)
|
||||||
#else
|
#else
|
||||||
# define BOOST_PP_LIST_FIRST(L) BOOST_PP_TUPLE3_ELEM0 L
|
# define BOOST_PP_LIST_FIRST(L) BOOST_PP_TUPLE3_ELEM0 L
|
||||||
@ -115,7 +115,7 @@ and BOOST_PP_LIST_FOLD_RIGHT_2ND():</p>
|
|||||||
BOOST_PP_TUPLE_TO_LIST(4,(2,3,4,5))
|
BOOST_PP_TUPLE_TO_LIST(4,(2,3,4,5))
|
||||||
</pre>
|
</pre>
|
||||||
*/
|
*/
|
||||||
#if !defined(BOOST_NO_COMPILER_CONFIG) && defined(__MWERKS__) && __MWERKS__ <= 0x2406
|
#if !defined(BOOST_NO_COMPILER_CONFIG) && defined(__MWERKS__)
|
||||||
# define BOOST_PP_LIST_REST(L) BOOST_PP_TUPLE_ELEM(3,1,L)
|
# define BOOST_PP_LIST_REST(L) BOOST_PP_TUPLE_ELEM(3,1,L)
|
||||||
#else
|
#else
|
||||||
# define BOOST_PP_LIST_REST(L) BOOST_PP_TUPLE3_ELEM1 L
|
# define BOOST_PP_LIST_REST(L) BOOST_PP_TUPLE3_ELEM1 L
|
||||||
|
@ -45,7 +45,7 @@ for which <code>F(D,P,X)</code> is true.</p>
|
|||||||
|
|
||||||
/** <p>Can be used inside BOOST_PP_WHILE().</p> */
|
/** <p>Can be used inside BOOST_PP_WHILE().</p> */
|
||||||
#define BOOST_PP_LIST_FILTER_D(D,F,P,L) BOOST_PP_TUPLE_ELEM(3,2,BOOST_PP_LIST_FOLD_RIGHT_D(D,BOOST_PP_LIST_FILTER_F,L,(F,P,(_,_,0))))
|
#define BOOST_PP_LIST_FILTER_D(D,F,P,L) BOOST_PP_TUPLE_ELEM(3,2,BOOST_PP_LIST_FOLD_RIGHT_D(D,BOOST_PP_LIST_FILTER_F,L,(F,P,(_,_,0))))
|
||||||
#if !defined(BOOST_NO_COMPILER_CONFIG) && defined(__MWERKS__) && __MWERKS__ <= 0x2406
|
#if !defined(BOOST_NO_COMPILER_CONFIG) && defined(__MWERKS__)
|
||||||
# define BOOST_PP_LIST_FILTER_F(D,H,P) (BOOST_PP_TUPLE_ELEM(3,0,P),BOOST_PP_TUPLE_ELEM(3,1,P),BOOST_PP_IF(BOOST_PP_TUPLE_ELEM(3,0,P)(D,BOOST_PP_TUPLE3_ELEM1 P,H),BOOST_PP_LIST_CONS,BOOST_PP_TUPLE2_ELEM1)(H,BOOST_PP_TUPLE_ELEM(3,2,P)))
|
# define BOOST_PP_LIST_FILTER_F(D,H,P) (BOOST_PP_TUPLE_ELEM(3,0,P),BOOST_PP_TUPLE_ELEM(3,1,P),BOOST_PP_IF(BOOST_PP_TUPLE_ELEM(3,0,P)(D,BOOST_PP_TUPLE3_ELEM1 P,H),BOOST_PP_LIST_CONS,BOOST_PP_TUPLE2_ELEM1)(H,BOOST_PP_TUPLE_ELEM(3,2,P)))
|
||||||
#elif !defined(BOOST_NO_COMPILER_CONFIG) && defined(_MSC_VER)
|
#elif !defined(BOOST_NO_COMPILER_CONFIG) && defined(_MSC_VER)
|
||||||
# define BOOST_PP_LIST_FILTER_F(D,H,P) (BOOST_PP_TUPLE_ELEM(3,0,P),BOOST_PP_TUPLE3_ELEM1 P,BOOST_PP_IF(BOOST_PP_TUPLE3_ELEM0 P(D,BOOST_PP_TUPLE3_ELEM1 P,H),BOOST_PP_LIST_CONS,BOOST_PP_TUPLE2_ELEM1)(H,BOOST_PP_TUPLE3_ELEM2 P))
|
# define BOOST_PP_LIST_FILTER_F(D,H,P) (BOOST_PP_TUPLE_ELEM(3,0,P),BOOST_PP_TUPLE3_ELEM1 P,BOOST_PP_IF(BOOST_PP_TUPLE3_ELEM0 P(D,BOOST_PP_TUPLE3_ELEM1 P,H),BOOST_PP_LIST_CONS,BOOST_PP_TUPLE2_ELEM1)(H,BOOST_PP_TUPLE3_ELEM2 P))
|
||||||
|
@ -51,7 +51,7 @@
|
|||||||
|
|
||||||
/** <p>Can be used inside BOOST_PP_WHILE().</p> */
|
/** <p>Can be used inside BOOST_PP_WHILE().</p> */
|
||||||
#define BOOST_PP_LIST_FIRST_N_D(D,N,L) BOOST_PP_LIST_REVERSE_D(D,BOOST_PP_TUPLE_ELEM(3,0,BOOST_PP_WHILE##D(BOOST_PP_LIST_FIRST_N_C,BOOST_PP_LIST_FIRST_N_F,((_,_,0),L,N))))
|
#define BOOST_PP_LIST_FIRST_N_D(D,N,L) BOOST_PP_LIST_REVERSE_D(D,BOOST_PP_TUPLE_ELEM(3,0,BOOST_PP_WHILE##D(BOOST_PP_LIST_FIRST_N_C,BOOST_PP_LIST_FIRST_N_F,((_,_,0),L,N))))
|
||||||
#if !defined(BOOST_NO_COMPILER_CONFIG) && defined(__MWERKS__) && __MWERKS__ <= 0x2406
|
#if !defined(BOOST_NO_COMPILER_CONFIG) && defined(__MWERKS__)
|
||||||
# define BOOST_PP_LIST_FIRST_N_C(D,X) BOOST_PP_TUPLE_ELEM(3,2,X)
|
# define BOOST_PP_LIST_FIRST_N_C(D,X) BOOST_PP_TUPLE_ELEM(3,2,X)
|
||||||
# define BOOST_PP_LIST_FIRST_N_F(D,X) ((BOOST_PP_TUPLE_ELEM(3,0,BOOST_PP_TUPLE_ELEM(3,1,X)),BOOST_PP_TUPLE_ELEM(3,0,X),1),BOOST_PP_TUPLE_ELEM(3,1,BOOST_PP_TUPLE_ELEM(3,1,X)),BOOST_PP_DEC(BOOST_PP_TUPLE_ELEM(3,2,X)))
|
# define BOOST_PP_LIST_FIRST_N_F(D,X) ((BOOST_PP_TUPLE_ELEM(3,0,BOOST_PP_TUPLE_ELEM(3,1,X)),BOOST_PP_TUPLE_ELEM(3,0,X),1),BOOST_PP_TUPLE_ELEM(3,1,BOOST_PP_TUPLE_ELEM(3,1,X)),BOOST_PP_DEC(BOOST_PP_TUPLE_ELEM(3,2,X)))
|
||||||
#else
|
#else
|
||||||
|
@ -29,6 +29,19 @@ list <code>L</code> (from the left or the start of the list).</p>
|
|||||||
)
|
)
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
|
<p>For example,</p>
|
||||||
|
|
||||||
|
<pre>
|
||||||
|
#define TEST(D,P,X) BOOST_PP_CAT(P,X)
|
||||||
|
BOOST_PP_FOLD_LEFT(TEST,_,BOOST_PP_TUPLE_TO_LIST(3,(A,B,C)))
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
<p>expands to:</p>
|
||||||
|
|
||||||
|
<pre>
|
||||||
|
_ABC
|
||||||
|
</pre>
|
||||||
|
|
||||||
<h3>Note</h3>
|
<h3>Note</h3>
|
||||||
<ul>
|
<ul>
|
||||||
<li>Folding, or accumulation, is a very general pattern of computation.
|
<li>Folding, or accumulation, is a very general pattern of computation.
|
||||||
@ -54,7 +67,7 @@ list <code>L</code> (from the left or the start of the list).</p>
|
|||||||
|
|
||||||
/** <p>Can be used inside BOOST_PP_WHILE().</p> */
|
/** <p>Can be used inside BOOST_PP_WHILE().</p> */
|
||||||
#define BOOST_PP_LIST_FOLD_LEFT_D(D,F,P,L) BOOST_PP_TUPLE_ELEM(3,1,BOOST_PP_WHILE##D(BOOST_PP_LIST_FOLD_LEFT_C,BOOST_PP_LIST_FOLD_LEFT_F,(F,P,L)))
|
#define BOOST_PP_LIST_FOLD_LEFT_D(D,F,P,L) BOOST_PP_TUPLE_ELEM(3,1,BOOST_PP_WHILE##D(BOOST_PP_LIST_FOLD_LEFT_C,BOOST_PP_LIST_FOLD_LEFT_F,(F,P,L)))
|
||||||
#if !defined(BOOST_NO_COMPILER_CONFIG) && defined(__MWERKS__) && __MWERKS__ <= 0x2406
|
#if !defined(BOOST_NO_COMPILER_CONFIG) && defined(__MWERKS__)
|
||||||
# define BOOST_PP_LIST_FOLD_LEFT_C(D,X) BOOST_PP_TUPLE_ELEM(3,2,BOOST_PP_TUPLE_ELEM(3,2,X))
|
# define BOOST_PP_LIST_FOLD_LEFT_C(D,X) BOOST_PP_TUPLE_ELEM(3,2,BOOST_PP_TUPLE_ELEM(3,2,X))
|
||||||
# define BOOST_PP_LIST_FOLD_LEFT_F(D,X) (BOOST_PP_TUPLE_ELEM(3,0,X),BOOST_PP_TUPLE_ELEM(3,0,X)(D,BOOST_PP_TUPLE_ELEM(3,1,X),BOOST_PP_TUPLE_ELEM(3,0,BOOST_PP_TUPLE_ELEM(3,2,X))),BOOST_PP_TUPLE_ELEM(3,1,BOOST_PP_TUPLE_ELEM(3,2,X)))
|
# define BOOST_PP_LIST_FOLD_LEFT_F(D,X) (BOOST_PP_TUPLE_ELEM(3,0,X),BOOST_PP_TUPLE_ELEM(3,0,X)(D,BOOST_PP_TUPLE_ELEM(3,1,X),BOOST_PP_TUPLE_ELEM(3,0,BOOST_PP_TUPLE_ELEM(3,2,X))),BOOST_PP_TUPLE_ELEM(3,1,BOOST_PP_TUPLE_ELEM(3,2,X)))
|
||||||
#elif !defined(BOOST_NO_COMPILER_CONFIG) && defined(_MSC_VER)
|
#elif !defined(BOOST_NO_COMPILER_CONFIG) && defined(_MSC_VER)
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
|
|
||||||
/** <p>Can be used inside BOOST_PP_WHILE().</p> */
|
/** <p>Can be used inside BOOST_PP_WHILE().</p> */
|
||||||
#define BOOST_PP_LIST_FOLD_LEFT_2ND_D(D,F,P,L) BOOST_PP_TUPLE_ELEM(3,1,BOOST_PP_WHILE##D(BOOST_PP_LIST_FOLD_LEFT_2ND_C,BOOST_PP_LIST_FOLD_LEFT_2ND_F,(F,P,L)))
|
#define BOOST_PP_LIST_FOLD_LEFT_2ND_D(D,F,P,L) BOOST_PP_TUPLE_ELEM(3,1,BOOST_PP_WHILE##D(BOOST_PP_LIST_FOLD_LEFT_2ND_C,BOOST_PP_LIST_FOLD_LEFT_2ND_F,(F,P,L)))
|
||||||
#if !defined(BOOST_NO_COMPILER_CONFIG) && defined(__MWERKS__) && __MWERKS__ <= 0x2406
|
#if !defined(BOOST_NO_COMPILER_CONFIG) && defined(__MWERKS__)
|
||||||
# define BOOST_PP_LIST_FOLD_LEFT_2ND_C(D,X) BOOST_PP_TUPLE_ELEM(3,2,BOOST_PP_TUPLE_ELEM(3,2,X))
|
# define BOOST_PP_LIST_FOLD_LEFT_2ND_C(D,X) BOOST_PP_TUPLE_ELEM(3,2,BOOST_PP_TUPLE_ELEM(3,2,X))
|
||||||
# define BOOST_PP_LIST_FOLD_LEFT_2ND_F(D,X) (BOOST_PP_TUPLE_ELEM(3,0,X),BOOST_PP_TUPLE_ELEM(3,0,X)(D,BOOST_PP_TUPLE_ELEM(3,1,X),BOOST_PP_TUPLE_ELEM(3,0,BOOST_PP_TUPLE_ELEM(3,2,X))),BOOST_PP_TUPLE_ELEM(3,1,BOOST_PP_TUPLE_ELEM(3,2,X)))
|
# define BOOST_PP_LIST_FOLD_LEFT_2ND_F(D,X) (BOOST_PP_TUPLE_ELEM(3,0,X),BOOST_PP_TUPLE_ELEM(3,0,X)(D,BOOST_PP_TUPLE_ELEM(3,1,X),BOOST_PP_TUPLE_ELEM(3,0,BOOST_PP_TUPLE_ELEM(3,2,X))),BOOST_PP_TUPLE_ELEM(3,1,BOOST_PP_TUPLE_ELEM(3,2,X)))
|
||||||
#elif !defined(BOOST_NO_COMPILER_CONFIG) && defined(_MSC_VER)
|
#elif !defined(BOOST_NO_COMPILER_CONFIG) && defined(_MSC_VER)
|
||||||
|
@ -51,7 +51,7 @@ list <code>L</code> (from the right or the end of the list).</p>
|
|||||||
|
|
||||||
/** <p>Can be used inside BOOST_PP_WHILE().</p> */
|
/** <p>Can be used inside BOOST_PP_WHILE().</p> */
|
||||||
#define BOOST_PP_LIST_FOLD_RIGHT_D(D,F,L,P) BOOST_PP_TUPLE_ELEM(2,1,BOOST_PP_LIST_FOLD_LEFT_D(D,BOOST_PP_LIST_FOLD_RIGHT_F,(F,P),BOOST_PP_LIST_REVERSE_D(D,L)))
|
#define BOOST_PP_LIST_FOLD_RIGHT_D(D,F,L,P) BOOST_PP_TUPLE_ELEM(2,1,BOOST_PP_LIST_FOLD_LEFT_D(D,BOOST_PP_LIST_FOLD_RIGHT_F,(F,P),BOOST_PP_LIST_REVERSE_D(D,L)))
|
||||||
#if !defined(BOOST_NO_COMPILER_CONFIG) && defined(__MWERKS__) && __MWERKS__ <= 0x2406
|
#if !defined(BOOST_NO_COMPILER_CONFIG) && defined(__MWERKS__)
|
||||||
# define BOOST_PP_LIST_FOLD_RIGHT_F(D,P,H) (BOOST_PP_TUPLE_ELEM(2,0,P),BOOST_PP_TUPLE_ELEM(2,0,P)(D,H,BOOST_PP_TUPLE_ELEM(2,1,P)))
|
# define BOOST_PP_LIST_FOLD_RIGHT_F(D,P,H) (BOOST_PP_TUPLE_ELEM(2,0,P),BOOST_PP_TUPLE_ELEM(2,0,P)(D,H,BOOST_PP_TUPLE_ELEM(2,1,P)))
|
||||||
#elif !defined(BOOST_NO_COMPILER_CONFIG) && defined(_MSC_VER)
|
#elif !defined(BOOST_NO_COMPILER_CONFIG) && defined(_MSC_VER)
|
||||||
# define BOOST_PP_LIST_FOLD_RIGHT_F(D,P,H) (BOOST_PP_TUPLE_ELEM(2,0,P),BOOST_PP_TUPLE_ELEM(2,0,P)(D,H,BOOST_PP_TUPLE2_ELEM1 P))
|
# define BOOST_PP_LIST_FOLD_RIGHT_F(D,P,H) (BOOST_PP_TUPLE_ELEM(2,0,P),BOOST_PP_TUPLE_ELEM(2,0,P)(D,H,BOOST_PP_TUPLE2_ELEM1 P))
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
|
|
||||||
/** <p>Can be used inside BOOST_PP_WHILE().</p> */
|
/** <p>Can be used inside BOOST_PP_WHILE().</p> */
|
||||||
#define BOOST_PP_LIST_FOLD_RIGHT_2ND_D(D,F,L,P) BOOST_PP_TUPLE_ELEM(2,1,BOOST_PP_LIST_FOLD_LEFT_2ND_D(D,BOOST_PP_LIST_FOLD_RIGHT_2ND_F,(F,P),BOOST_PP_LIST_FOLD_LEFT_2ND_D(D,BOOST_PP_LIST_REVERSE_F,(_,_,0),L)))
|
#define BOOST_PP_LIST_FOLD_RIGHT_2ND_D(D,F,L,P) BOOST_PP_TUPLE_ELEM(2,1,BOOST_PP_LIST_FOLD_LEFT_2ND_D(D,BOOST_PP_LIST_FOLD_RIGHT_2ND_F,(F,P),BOOST_PP_LIST_FOLD_LEFT_2ND_D(D,BOOST_PP_LIST_REVERSE_F,(_,_,0),L)))
|
||||||
#if !defined(BOOST_NO_COMPILER_CONFIG) && defined(__MWERKS__) && __MWERKS__ <= 0x2406
|
#if !defined(BOOST_NO_COMPILER_CONFIG) && defined(__MWERKS__)
|
||||||
# define BOOST_PP_LIST_FOLD_RIGHT_2ND_F(D,P,H) (BOOST_PP_TUPLE_ELEM(2,0,P),BOOST_PP_TUPLE_ELEM(2,0,P)(D,H,BOOST_PP_TUPLE_ELEM(2,1,P)))
|
# define BOOST_PP_LIST_FOLD_RIGHT_2ND_F(D,P,H) (BOOST_PP_TUPLE_ELEM(2,0,P),BOOST_PP_TUPLE_ELEM(2,0,P)(D,H,BOOST_PP_TUPLE_ELEM(2,1,P)))
|
||||||
#elif !defined(BOOST_NO_COMPILER_CONFIG) && defined(_MSC_VER)
|
#elif !defined(BOOST_NO_COMPILER_CONFIG) && defined(_MSC_VER)
|
||||||
# define BOOST_PP_LIST_FOLD_RIGHT_2ND_F(D,P,H) (BOOST_PP_TUPLE_ELEM(2,0,P),BOOST_PP_TUPLE_ELEM(2,0,P)(D,H,BOOST_PP_TUPLE2_ELEM1 P))
|
# define BOOST_PP_LIST_FOLD_RIGHT_2ND_F(D,P,H) (BOOST_PP_TUPLE_ELEM(2,0,P),BOOST_PP_TUPLE_ELEM(2,0,P)(D,H,BOOST_PP_TUPLE2_ELEM1 P))
|
||||||
|
@ -45,7 +45,7 @@ explosion.</p>
|
|||||||
|
|
||||||
/** <p>Can be used inside BOOST_PP_FOR().</p> */
|
/** <p>Can be used inside BOOST_PP_FOR().</p> */
|
||||||
#define BOOST_PP_LIST_FOR_EACH_PRODUCT_R(R,F,N,T_OF_L) BOOST_PP_LIST_FOR_EACH_PRODUCT_R2(0,F,BOOST_PP_TUPLE_TO_LIST(N,BOOST_PP_TUPLE_REVERSE(N,T_OF_L)))
|
#define BOOST_PP_LIST_FOR_EACH_PRODUCT_R(R,F,N,T_OF_L) BOOST_PP_LIST_FOR_EACH_PRODUCT_R2(0,F,BOOST_PP_TUPLE_TO_LIST(N,BOOST_PP_TUPLE_REVERSE(N,T_OF_L)))
|
||||||
#if !defined(BOOST_NO_COMPILER_CONFIG) && defined(__MWERKS__) && __MWERKS__ <= 0x2406 ||\
|
#if !defined(BOOST_NO_COMPILER_CONFIG) && defined(__MWERKS__) ||\
|
||||||
!defined(BOOST_NO_COMPILER_CONFIG) && defined(_MSC_VER)
|
!defined(BOOST_NO_COMPILER_CONFIG) && defined(_MSC_VER)
|
||||||
# define BOOST_PP_LIST_FOR_EACH_PRODUCT_R2(R,F,LL) BOOST_PP_FOR##R((BOOST_PP_TUPLE_ELEM(3,0,LL),BOOST_PP_TUPLE_ELEM(3,1,LL),(_,_,0),F),BOOST_PP_LIST_FOR_EACH_PRODUCT_C,BOOST_PP_LIST_FOR_EACH_PRODUCT_F,BOOST_PP_LIST_FOR_EACH_PRODUCT_I0)
|
# define BOOST_PP_LIST_FOR_EACH_PRODUCT_R2(R,F,LL) BOOST_PP_FOR##R((BOOST_PP_TUPLE_ELEM(3,0,LL),BOOST_PP_TUPLE_ELEM(3,1,LL),(_,_,0),F),BOOST_PP_LIST_FOR_EACH_PRODUCT_C,BOOST_PP_LIST_FOR_EACH_PRODUCT_F,BOOST_PP_LIST_FOR_EACH_PRODUCT_I0)
|
||||||
# define BOOST_PP_LIST_FOR_EACH_PRODUCT_C(R,P) BOOST_PP_TUPLE_ELEM(3,2,BOOST_PP_TUPLE_ELEM(4,0,P))
|
# define BOOST_PP_LIST_FOR_EACH_PRODUCT_C(R,P) BOOST_PP_TUPLE_ELEM(3,2,BOOST_PP_TUPLE_ELEM(4,0,P))
|
||||||
|
@ -51,7 +51,7 @@ list <code>L</code>.</p>
|
|||||||
|
|
||||||
/** <p>Can be used inside BOOST_PP_WHILE().</p> */
|
/** <p>Can be used inside BOOST_PP_WHILE().</p> */
|
||||||
#define BOOST_PP_LIST_REST_N_D(D,N,L) BOOST_PP_TUPLE_ELEM(2,0,BOOST_PP_WHILE##D(BOOST_PP_LIST_REST_N_C,BOOST_PP_LIST_REST_N_F,(L,N)))
|
#define BOOST_PP_LIST_REST_N_D(D,N,L) BOOST_PP_TUPLE_ELEM(2,0,BOOST_PP_WHILE##D(BOOST_PP_LIST_REST_N_C,BOOST_PP_LIST_REST_N_F,(L,N)))
|
||||||
#if !defined(BOOST_NO_COMPILER_CONFIG) && defined(__MWERKS__) && __MWERKS__ <= 0x2406
|
#if !defined(BOOST_NO_COMPILER_CONFIG) && defined(__MWERKS__)
|
||||||
# define BOOST_PP_LIST_REST_N_C(D,X) BOOST_PP_TUPLE_ELEM(2,1,X)
|
# define BOOST_PP_LIST_REST_N_C(D,X) BOOST_PP_TUPLE_ELEM(2,1,X)
|
||||||
# define BOOST_PP_LIST_REST_N_F(D,X) (BOOST_PP_TUPLE_ELEM(3,1,BOOST_PP_TUPLE_ELEM(2,0,X)),BOOST_PP_DEC(BOOST_PP_TUPLE_ELEM(2,1,X)))
|
# define BOOST_PP_LIST_REST_N_F(D,X) (BOOST_PP_TUPLE_ELEM(3,1,BOOST_PP_TUPLE_ELEM(2,0,X)),BOOST_PP_DEC(BOOST_PP_TUPLE_ELEM(2,1,X)))
|
||||||
#else
|
#else
|
||||||
|
@ -55,7 +55,7 @@ of the list producing a new list.</p>
|
|||||||
|
|
||||||
/** <p>Can be used inside BOOST_PP_WHILE().</p> */
|
/** <p>Can be used inside BOOST_PP_WHILE().</p> */
|
||||||
#define BOOST_PP_LIST_TRANSFORM_D(D,F,P,L) BOOST_PP_TUPLE_ELEM(3,2,BOOST_PP_LIST_FOLD_RIGHT_D(D,BOOST_PP_LIST_TRANSFORM_F,L,(F,P,(_,_,0))))
|
#define BOOST_PP_LIST_TRANSFORM_D(D,F,P,L) BOOST_PP_TUPLE_ELEM(3,2,BOOST_PP_LIST_FOLD_RIGHT_D(D,BOOST_PP_LIST_TRANSFORM_F,L,(F,P,(_,_,0))))
|
||||||
#if !defined(BOOST_NO_COMPILER_CONFIG) && defined(__MWERKS__) && __MWERKS__ <= 0x2406
|
#if !defined(BOOST_NO_COMPILER_CONFIG) && defined(__MWERKS__)
|
||||||
# define BOOST_PP_LIST_TRANSFORM_F(D,H,P) (BOOST_PP_TUPLE_ELEM(3,0,P),BOOST_PP_TUPLE_ELEM(3,1,P),(BOOST_PP_TUPLE_ELEM(3,0,P)(D,BOOST_PP_TUPLE_ELEM(3,1,P),H),BOOST_PP_TUPLE_ELEM(3,2,P),1))
|
# define BOOST_PP_LIST_TRANSFORM_F(D,H,P) (BOOST_PP_TUPLE_ELEM(3,0,P),BOOST_PP_TUPLE_ELEM(3,1,P),(BOOST_PP_TUPLE_ELEM(3,0,P)(D,BOOST_PP_TUPLE_ELEM(3,1,P),H),BOOST_PP_TUPLE_ELEM(3,2,P),1))
|
||||||
#elif !defined(BOOST_NO_COMPILER_CONFIG) && defined(_MSC_VER)
|
#elif !defined(BOOST_NO_COMPILER_CONFIG) && defined(_MSC_VER)
|
||||||
# define BOOST_PP_LIST_TRANSFORM_F(D,H,P) (BOOST_PP_TUPLE_ELEM(3,0,P),BOOST_PP_TUPLE3_ELEM1 P,(BOOST_PP_TUPLE_ELEM(3,0,P)(D,BOOST_PP_TUPLE3_ELEM1 P,H),BOOST_PP_TUPLE3_ELEM2 P,1))
|
# define BOOST_PP_LIST_TRANSFORM_F(D,H,P) (BOOST_PP_TUPLE_ELEM(3,0,P),BOOST_PP_TUPLE3_ELEM1 P,(BOOST_PP_TUPLE_ELEM(3,0,P)(D,BOOST_PP_TUPLE3_ELEM1 P,H),BOOST_PP_TUPLE3_ELEM2 P,1))
|
||||||
|
@ -14,6 +14,8 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/** <p>Expands to <code>0</code> if <code>X == 0</code> and <code>1</code> if <code>X != 0</code>.</p>
|
/** <p>Expands to <code>0</code> if <code>X == 0</code> and <code>1</code> if <code>X != 0</code>.</p>
|
||||||
|
|
||||||
|
<p>For example, <code>BOOST_PP_BOOL(3)</code> expands to <code>1</code>.</p>
|
||||||
*/
|
*/
|
||||||
#define BOOST_PP_BOOL(X) BOOST_PP_BOOL_DELAY(X)
|
#define BOOST_PP_BOOL(X) BOOST_PP_BOOL_DELAY(X)
|
||||||
|
|
||||||
|
@ -21,6 +21,19 @@
|
|||||||
M(0,P) M(1,P) ... M(BOOST_PP_DEC(N),P)
|
M(0,P) M(1,P) ... M(BOOST_PP_DEC(N),P)
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
|
<p>For example,</p>
|
||||||
|
|
||||||
|
<pre>
|
||||||
|
#define TEST(I,P) P(I);
|
||||||
|
BOOST_PP_REPEAT(3,TEST,X)
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
<p>expands to:</p>
|
||||||
|
|
||||||
|
<pre>
|
||||||
|
X(0); X(1); X(2);
|
||||||
|
</pre>
|
||||||
|
|
||||||
<h3>2D and 3D repetition</h3>
|
<h3>2D and 3D repetition</h3>
|
||||||
|
|
||||||
<p>2D and 3D repetition are supported with the BOOST_PP_REPEAT_2ND() and
|
<p>2D and 3D repetition are supported with the BOOST_PP_REPEAT_2ND() and
|
||||||
|
@ -15,6 +15,8 @@
|
|||||||
|
|
||||||
/** <p>Stringizes <code>X</code> after it is macro expanded.</p>
|
/** <p>Stringizes <code>X</code> after it is macro expanded.</p>
|
||||||
|
|
||||||
|
<p>For example, <code>BOOST_PP_STRINGIZE(BOOST_PP_CAT(a,b))</code> expands to <code>"ab"</code>.</p>
|
||||||
|
|
||||||
<h3>Example</h3>
|
<h3>Example</h3>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="../../example/note.c">note.c</a></li>
|
<li><a href="../../example/note.c">note.c</a></li>
|
||||||
|
@ -40,7 +40,7 @@
|
|||||||
*/
|
*/
|
||||||
#define BOOST_PP_TUPLE_ELEM(N,I,T) BOOST_PP_TUPLE_ELEM_DELAY(N,I,T)
|
#define BOOST_PP_TUPLE_ELEM(N,I,T) BOOST_PP_TUPLE_ELEM_DELAY(N,I,T)
|
||||||
|
|
||||||
#if !defined(BOOST_NO_COMPILER_CONFIG) && defined(__MWERKS__) && __MWERKS__ <= 0x2406
|
#if !defined(BOOST_NO_COMPILER_CONFIG) && defined(__MWERKS__)
|
||||||
/* This is a workaround for a CodeWarrior PP bug. Strictly speaking
|
/* This is a workaround for a CodeWarrior PP bug. Strictly speaking
|
||||||
* this workaround invokes undefined behavior, but it works as desired.
|
* this workaround invokes undefined behavior, but it works as desired.
|
||||||
*/
|
*/
|
||||||
|
@ -25,7 +25,7 @@
|
|||||||
*/
|
*/
|
||||||
#define BOOST_PP_TUPLE_REVERSE(N,T) BOOST_PP_TUPLE_REVERSE_DELAY(N,T)
|
#define BOOST_PP_TUPLE_REVERSE(N,T) BOOST_PP_TUPLE_REVERSE_DELAY(N,T)
|
||||||
|
|
||||||
#if !defined(BOOST_NO_COMPILER_CONFIG) && defined(__MWERKS__) && __MWERKS__ <= 0x2406
|
#if !defined(BOOST_NO_COMPILER_CONFIG) && defined(__MWERKS__)
|
||||||
/* This is a workaround for a CodeWarrior PP bug. Strictly speaking
|
/* This is a workaround for a CodeWarrior PP bug. Strictly speaking
|
||||||
* this workaround invokes undefined behavior, but it works as desired.
|
* this workaround invokes undefined behavior, but it works as desired.
|
||||||
*/
|
*/
|
||||||
|
@ -39,7 +39,7 @@
|
|||||||
*/
|
*/
|
||||||
#define BOOST_PP_TUPLE_TO_LIST(N,T) BOOST_PP_TUPLE_TO_LIST_DELAY(N,T)
|
#define BOOST_PP_TUPLE_TO_LIST(N,T) BOOST_PP_TUPLE_TO_LIST_DELAY(N,T)
|
||||||
|
|
||||||
#if !defined(BOOST_NO_COMPILER_CONFIG) && defined(__MWERKS__) && __MWERKS__ <= 0x2406
|
#if !defined(BOOST_NO_COMPILER_CONFIG) && defined(__MWERKS__)
|
||||||
/* This is a workaround for a CodeWarrior PP bug. Strictly speaking
|
/* This is a workaround for a CodeWarrior PP bug. Strictly speaking
|
||||||
* this workaround invokes undefined behavior, but it works as desired.
|
* this workaround invokes undefined behavior, but it works as desired.
|
||||||
*/
|
*/
|
||||||
|
@ -16,33 +16,33 @@
|
|||||||
|
|
||||||
/* *** */
|
/* *** */
|
||||||
|
|
||||||
#if !(!defined(BOOST_NO_COMPILER_CONFIG) && defined(__MWERKS__) && __MWERKS__ <= 0x2406)
|
#if !(!defined(BOOST_NO_COMPILER_CONFIG) && defined(__MWERKS__))
|
||||||
TEST_B BOOST_PP_NOT(MACRO MACRO_ARGS(0)) == 1 TEST_E
|
TEST_B BOOST_PP_NOT(MACRO MACRO_ARGS(0)) == 1 TEST_E
|
||||||
#endif
|
#endif
|
||||||
TEST_B BOOST_PP_NOT(1) == 0 TEST_E
|
TEST_B BOOST_PP_NOT(1) == 0 TEST_E
|
||||||
|
|
||||||
#if !(!defined(BOOST_NO_COMPILER_CONFIG) && defined(__MWERKS__) && __MWERKS__ <= 0x2406)
|
#if !(!defined(BOOST_NO_COMPILER_CONFIG) && defined(__MWERKS__))
|
||||||
TEST_B BOOST_PP_AND(0,MACRO MACRO_ARGS(0)) == 0 TEST_E
|
TEST_B BOOST_PP_AND(0,MACRO MACRO_ARGS(0)) == 0 TEST_E
|
||||||
#endif
|
#endif
|
||||||
TEST_B BOOST_PP_AND(0,1) == 0 TEST_E
|
TEST_B BOOST_PP_AND(0,1) == 0 TEST_E
|
||||||
TEST_B BOOST_PP_AND(1,0) == 0 TEST_E
|
TEST_B BOOST_PP_AND(1,0) == 0 TEST_E
|
||||||
TEST_B BOOST_PP_AND(1,1) == 1 TEST_E
|
TEST_B BOOST_PP_AND(1,1) == 1 TEST_E
|
||||||
|
|
||||||
#if !(!defined(BOOST_NO_COMPILER_CONFIG) && defined(__MWERKS__) && __MWERKS__ <= 0x2406)
|
#if !(!defined(BOOST_NO_COMPILER_CONFIG) && defined(__MWERKS__))
|
||||||
TEST_B BOOST_PP_OR(0,MACRO MACRO_ARGS(0)) == 0 TEST_E
|
TEST_B BOOST_PP_OR(0,MACRO MACRO_ARGS(0)) == 0 TEST_E
|
||||||
#endif
|
#endif
|
||||||
TEST_B BOOST_PP_OR(0,1) == 1 TEST_E
|
TEST_B BOOST_PP_OR(0,1) == 1 TEST_E
|
||||||
TEST_B BOOST_PP_OR(1,0) == 1 TEST_E
|
TEST_B BOOST_PP_OR(1,0) == 1 TEST_E
|
||||||
TEST_B BOOST_PP_OR(1,1) == 1 TEST_E
|
TEST_B BOOST_PP_OR(1,1) == 1 TEST_E
|
||||||
|
|
||||||
#if !(!defined(BOOST_NO_COMPILER_CONFIG) && defined(__MWERKS__) && __MWERKS__ <= 0x2406)
|
#if !(!defined(BOOST_NO_COMPILER_CONFIG) && defined(__MWERKS__))
|
||||||
TEST_B BOOST_PP_XOR(0,MACRO MACRO_ARGS(0)) == 0 TEST_E
|
TEST_B BOOST_PP_XOR(0,MACRO MACRO_ARGS(0)) == 0 TEST_E
|
||||||
#endif
|
#endif
|
||||||
TEST_B BOOST_PP_XOR(0,1) == 1 TEST_E
|
TEST_B BOOST_PP_XOR(0,1) == 1 TEST_E
|
||||||
TEST_B BOOST_PP_XOR(1,0) == 1 TEST_E
|
TEST_B BOOST_PP_XOR(1,0) == 1 TEST_E
|
||||||
TEST_B BOOST_PP_XOR(1,1) == 0 TEST_E
|
TEST_B BOOST_PP_XOR(1,1) == 0 TEST_E
|
||||||
|
|
||||||
#if !(!defined(BOOST_NO_COMPILER_CONFIG) && defined(__MWERKS__) && __MWERKS__ <= 0x2406)
|
#if !(!defined(BOOST_NO_COMPILER_CONFIG) && defined(__MWERKS__))
|
||||||
TEST_B BOOST_PP_NOR(0,MACRO MACRO_ARGS(0)) == 1 TEST_E
|
TEST_B BOOST_PP_NOR(0,MACRO MACRO_ARGS(0)) == 1 TEST_E
|
||||||
#endif
|
#endif
|
||||||
TEST_B BOOST_PP_NOR(0,1) == 0 TEST_E
|
TEST_B BOOST_PP_NOR(0,1) == 0 TEST_E
|
||||||
|
@ -40,13 +40,13 @@ TEST_B BOOST_PP_IF(BOOST_PP_IF(1,1,1),true,false) &&
|
|||||||
|
|
||||||
/* *** */
|
/* *** */
|
||||||
|
|
||||||
#if !(!defined(BOOST_NO_COMPILER_CONFIG) && defined(__MWERKS__) && __MWERKS__ <= 0x2406)
|
#if !(!defined(BOOST_NO_COMPILER_CONFIG) && defined(__MWERKS__))
|
||||||
TEST_B BOOST_PP_CAT(BOOST_PP_IF(1,tru,fals), MACRO MACRO_ARGS(e)) TEST_E
|
TEST_B BOOST_PP_CAT(BOOST_PP_IF(1,tru,fals), MACRO MACRO_ARGS(e)) TEST_E
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* *** */
|
/* *** */
|
||||||
|
|
||||||
#if !(!defined(BOOST_NO_COMPILER_CONFIG) && defined(__MWERKS__) && __MWERKS__ <= 0x2406)
|
#if !(!defined(BOOST_NO_COMPILER_CONFIG) && defined(__MWERKS__))
|
||||||
char stringize_test[2] = BOOST_PP_STRINGIZE(MACRO MACRO_ARGS(X));
|
char stringize_test[2] = BOOST_PP_STRINGIZE(MACRO MACRO_ARGS(X));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user