diff --git a/doc/reference/arithmetic_add.htm b/doc/reference/arithmetic_add.htm index 57c9388..25b98e0 100644 --- a/doc/reference/arithmetic_add.htm +++ b/doc/reference/arithmetic_add.htm @@ -44,6 +44,10 @@ single token).


+

#define BOOST_PP_ADD_D(D,X,Y)

+

Can be used inside BOOST_PP_WHILE().

+
+

#define BOOST_PREPROCESSOR_ADD(X,Y)

Obsolete. Use BOOST_PP_ADD().


diff --git a/doc/reference/arithmetic_div.htm b/doc/reference/arithmetic_div.htm index 99422a9..bc7e1ba 100644 --- a/doc/reference/arithmetic_div.htm +++ b/doc/reference/arithmetic_div.htm @@ -44,6 +44,10 @@ single token).


+

#define BOOST_PP_DIV_D(D,X,Y)

+

Can be used inside BOOST_PP_WHILE().

+
+

#define BOOST_PREPROCESSOR_DIV(X,Y)

Obsolete. Use BOOST_PP_DIV().


diff --git a/doc/reference/arithmetic_mod.htm b/doc/reference/arithmetic_mod.htm index e3efd9f..5b3c7a3 100644 --- a/doc/reference/arithmetic_mod.htm +++ b/doc/reference/arithmetic_mod.htm @@ -44,6 +44,10 @@ single token).


+

#define BOOST_PP_MOD_D(D,X,Y)

+

Can be used inside BOOST_PP_WHILE().

+
+

#define BOOST_PREPROCESSOR_MOD(X,Y)

Obsolete. Use BOOST_PP_MOD().


diff --git a/doc/reference/arithmetic_mul.htm b/doc/reference/arithmetic_mul.htm index bb5b1e2..773ea3e 100644 --- a/doc/reference/arithmetic_mul.htm +++ b/doc/reference/arithmetic_mul.htm @@ -44,6 +44,10 @@ single token).


+

#define BOOST_PP_MUL_D(D,X,Y)

+

Can be used inside BOOST_PP_WHILE().

+
+

#define BOOST_PREPROCESSOR_MUL(X,Y)

Obsolete. Use BOOST_PP_MUL().


diff --git a/doc/reference/arithmetic_sub.htm b/doc/reference/arithmetic_sub.htm index 5f6f75f..896d843 100644 --- a/doc/reference/arithmetic_sub.htm +++ b/doc/reference/arithmetic_sub.htm @@ -44,6 +44,10 @@ single token).


+

#define BOOST_PP_SUB_D(D,X,Y)

+

Can be used inside BOOST_PP_WHILE().

+
+

#define BOOST_PREPROCESSOR_SUB(X,Y)

Obsolete. Use BOOST_PP_SUB(X,Y).


diff --git a/doc/reference/comparison_equal.htm b/doc/reference/comparison_equal.htm index 5f625f7..9b57669 100644 --- a/doc/reference/comparison_equal.htm +++ b/doc/reference/comparison_equal.htm @@ -42,6 +42,10 @@ otherwise.


+

#define BOOST_PP_EQUAL_D(D,X,Y)

+

Can be used inside BOOST_PP_WHILE().

+
+

#define BOOST_PREPROCESSOR_EQUAL(X,Y)

Obsolete. Use BOOST_PP_EQUAL().


diff --git a/doc/reference/comparison_greater.htm b/doc/reference/comparison_greater.htm index 46b29f8..22be6cc 100644 --- a/doc/reference/comparison_greater.htm +++ b/doc/reference/comparison_greater.htm @@ -42,6 +42,10 @@ otherwise.


+

#define BOOST_PP_GREATER_D(D,X,Y)

+

Can be used inside BOOST_PP_WHILE().

+
+

#define BOOST_PREPROCESSOR_GREATER(X,Y)

Obsolete. Use BOOST_PP_GREATER().


diff --git a/doc/reference/comparison_greater_equal.htm b/doc/reference/comparison_greater_equal.htm index 8187679..4881b9e 100644 --- a/doc/reference/comparison_greater_equal.htm +++ b/doc/reference/comparison_greater_equal.htm @@ -42,6 +42,10 @@ otherwise.


+

#define BOOST_PP_GREATER_EQUAL_D(D,X,Y)

+

Can be used inside BOOST_PP_WHILE().

+
+

#define BOOST_PREPROCESSOR_GREATER_EQUAL(X,Y)

Obsolete. Use BOOST_PP_GREATER_EQUAL().


diff --git a/doc/reference/comparison_less.htm b/doc/reference/comparison_less.htm index 155f037..453552e 100644 --- a/doc/reference/comparison_less.htm +++ b/doc/reference/comparison_less.htm @@ -42,6 +42,10 @@ otherwise.


+

#define BOOST_PP_LESS_D(D,X,Y)

+

Can be used inside BOOST_PP_WHILE().

+
+

#define BOOST_PREPROCESSOR_LESS(X,Y)

Obsolete. Use BOOST_PP_LESS().


diff --git a/doc/reference/comparison_less_equal.htm b/doc/reference/comparison_less_equal.htm index a3e51c2..4aa1341 100644 --- a/doc/reference/comparison_less_equal.htm +++ b/doc/reference/comparison_less_equal.htm @@ -42,6 +42,10 @@ otherwise.


+

#define BOOST_PP_LESS_EQUAL_D(D,X,Y)

+

Can be used inside BOOST_PP_WHILE().

+
+

#define BOOST_PREPROCESSOR_LESS_EQUAL(X,Y)

Obsolete. Use BOOST_PP_LESS_EQUAL().


diff --git a/doc/reference/comparison_not_equal.htm b/doc/reference/comparison_not_equal.htm index 30fc476..cfef7a4 100644 --- a/doc/reference/comparison_not_equal.htm +++ b/doc/reference/comparison_not_equal.htm @@ -42,6 +42,10 @@ otherwise.


+

#define BOOST_PP_NOT_EQUAL_D(D,X,Y)

+

Can be used inside BOOST_PP_WHILE().

+
+

#define BOOST_PREPROCESSOR_NOT_EQUAL(X,Y)

Obsolete. Use BOOST_PP_NOT_EQUAL().


diff --git a/doc/reference/index.htm b/doc/reference/index.htm index 47140d4..c438432 100644 --- a/doc/reference/index.htm +++ b/doc/reference/index.htm @@ -22,6 +22,7 @@
BOOST_PP_ADD
+
BOOST_PP_ADD_D
BOOST_PP_AND
BOOST_PP_ASSERT_MSG
BOOST_PP_BOOL
@@ -30,6 +31,7 @@
BOOST_PP_COMMA_IF
BOOST_PP_DEC
BOOST_PP_DIV
+
BOOST_PP_DIV_D
BOOST_PP_EMPTY
BOOST_PP_ENUM
BOOST_PP_ENUM_PARAMS
@@ -38,52 +40,78 @@
BOOST_PP_ENUM_SHIFTED
BOOST_PP_ENUM_SHIFTED_PARAMS
BOOST_PP_EQUAL
+
BOOST_PP_EQUAL_D
BOOST_PP_EXPAND
BOOST_PP_FOR
BOOST_PP_GREATER
+
BOOST_PP_GREATER_D
BOOST_PP_GREATER_EQUAL
+
BOOST_PP_GREATER_EQUAL_D
BOOST_PP_IDENTITY
BOOST_PP_IF
BOOST_PP_INC
BOOST_PP_LESS
+
BOOST_PP_LESS_D
BOOST_PP_LESS_EQUAL
+
BOOST_PP_LESS_EQUAL_D
BOOST_PP_LIMIT_DIM
BOOST_PP_LIMIT_MAG
BOOST_PP_LIMIT_TUPLE
BOOST_PP_LIST_APPEND
+
BOOST_PP_LIST_APPEND_D
BOOST_PP_LIST_AT
+
BOOST_PP_LIST_AT_D
BOOST_PP_LIST_CAT
+
BOOST_PP_LIST_CAT_D
BOOST_PP_LIST_CONS
BOOST_PP_LIST_ENUM
+
BOOST_PP_LIST_ENUM_R
BOOST_PP_LIST_FILTER
+
BOOST_PP_LIST_FILTER_D
BOOST_PP_LIST_FIRST
BOOST_PP_LIST_FIRST_N
+
BOOST_PP_LIST_FIRST_N_D
BOOST_PP_LIST_FOLD_LEFT
+
BOOST_PP_LIST_FOLD_LEFT_D
BOOST_PP_LIST_FOLD_RIGHT
+
BOOST_PP_LIST_FOLD_RIGHT_D
BOOST_PP_LIST_FOR_EACH
BOOST_PP_LIST_FOR_EACH_PRODUCT
+
BOOST_PP_LIST_FOR_EACH_PRODUCT_R
+
BOOST_PP_LIST_FOR_EACH_R
BOOST_PP_LIST_IS_CONS
BOOST_PP_LIST_IS_NIL
BOOST_PP_LIST_NIL
BOOST_PP_LIST_REST
BOOST_PP_LIST_REST_N
+
BOOST_PP_LIST_REST_N_D
BOOST_PP_LIST_REVERSE
+
BOOST_PP_LIST_REVERSE_D
BOOST_PP_LIST_SIZE
+
BOOST_PP_LIST_SIZE_D
BOOST_PP_LIST_TO_TUPLE
+
BOOST_PP_LIST_TO_TUPLE_R
BOOST_PP_LIST_TRANSFORM
+
BOOST_PP_LIST_TRANSFORM_D
BOOST_PP_MAX
+
BOOST_PP_MAX_D
BOOST_PP_MIN
+
BOOST_PP_MIN_D
BOOST_PP_MOD
+
BOOST_PP_MOD_D
BOOST_PP_MUL
+
BOOST_PP_MUL_D
BOOST_PP_NOR
BOOST_PP_NOT
BOOST_PP_NOT_EQUAL
+
BOOST_PP_NOT_EQUAL_D
BOOST_PP_OR
BOOST_PP_REPEAT
BOOST_PP_REPEAT_2ND
BOOST_PP_REPEAT_3RD
BOOST_PP_STRINGIZE
BOOST_PP_SUB
+
BOOST_PP_SUB_D
BOOST_PP_TUPLE_EAT
BOOST_PP_TUPLE_ELEM
BOOST_PP_TUPLE_REVERSE
diff --git a/doc/reference/list_append.htm b/doc/reference/list_append.htm index 1e2a965..8dec12a 100644 --- a/doc/reference/list_append.htm +++ b/doc/reference/list_append.htm @@ -56,6 +56,10 @@
+

#define BOOST_PP_LIST_APPEND_D(D,L,P)

+

Can be used inside BOOST_PP_WHILE().

+
+ Prev Next Macros Headers
diff --git a/doc/reference/list_at.htm b/doc/reference/list_at.htm index 4abf2eb..d15a3bb 100644 --- a/doc/reference/list_at.htm +++ b/doc/reference/list_at.htm @@ -50,6 +50,10 @@ first element is at index 0.


+

#define BOOST_PP_LIST_AT_D(D,L,I)

+

Can be used inside BOOST_PP_WHILE().

+
+ Prev Next Macros Headers
diff --git a/doc/reference/list_cat.htm b/doc/reference/list_cat.htm index 9aa4730..51f3192 100644 --- a/doc/reference/list_cat.htm +++ b/doc/reference/list_cat.htm @@ -53,6 +53,10 @@
+

#define BOOST_PP_LIST_CAT_D(D,L)

+

Can be used inside BOOST_PP_WHILE().

+
+ Prev Next Macros Headers
diff --git a/doc/reference/list_enum.htm b/doc/reference/list_enum.htm index d569307..56fd28d 100644 --- a/doc/reference/list_enum.htm +++ b/doc/reference/list_enum.htm @@ -48,6 +48,10 @@
+

#define BOOST_PP_LIST_ENUM_R(R,L)

+

Can be used inside BOOST_PP_FOR().

+
+ Prev Next Macros Headers
diff --git a/doc/reference/list_filter.htm b/doc/reference/list_filter.htm index 2cbc84c..789c7d2 100644 --- a/doc/reference/list_filter.htm +++ b/doc/reference/list_filter.htm @@ -33,7 +33,7 @@ for which F(D,P,X) is true.

For example,

-  BOOST_PP_LIST_FILTER(BOOST_PP_NOT_EQUAL_D,2,BOOST_PP_TUPLE_TO_LIST(3,(1,2,3)))
+  BOOST_PP_LIST_FILTER(BOOST_PP_NOT_EQUAL_D,2,BOOST_PP_TUPLE_TO_LIST(3,(1,2,3)))
 

expands to the same as:

@@ -54,6 +54,10 @@ for which F(D,P,X) is true.


+

#define BOOST_PP_LIST_FILTER_D(D,F,P,L)

+

Can be used inside BOOST_PP_WHILE().

+
+ Prev Next Macros Headers
diff --git a/doc/reference/list_first_n.htm b/doc/reference/list_first_n.htm index da89642..b083881 100644 --- a/doc/reference/list_first_n.htm +++ b/doc/reference/list_first_n.htm @@ -59,6 +59,10 @@
+

#define BOOST_PP_LIST_FIRST_N_D(D,N,L)

+

Can be used inside BOOST_PP_WHILE().

+
+ Prev Next Macros Headers
diff --git a/doc/reference/list_fold_left.htm b/doc/reference/list_fold_left.htm index 189222e..4eb1d98 100644 --- a/doc/reference/list_fold_left.htm +++ b/doc/reference/list_fold_left.htm @@ -63,6 +63,10 @@ list L (from the left or the start of the list).


+

#define BOOST_PP_LIST_FOLD_LEFT_D(D,F,P,L)

+

Can be used inside BOOST_PP_WHILE().

+
+ Prev Next Macros Headers
diff --git a/doc/reference/list_fold_right.htm b/doc/reference/list_fold_right.htm index a757694..6623efa 100644 --- a/doc/reference/list_fold_right.htm +++ b/doc/reference/list_fold_right.htm @@ -60,6 +60,10 @@ list L (from the right or the end of the list).


+

#define BOOST_PP_LIST_FOLD_RIGHT_D(D,F,L,P)

+

Can be used inside BOOST_PP_WHILE().

+
+ Prev Next Macros Headers
diff --git a/doc/reference/list_for_each.htm b/doc/reference/list_for_each.htm index 89bc491..69f76f4 100644 --- a/doc/reference/list_for_each.htm +++ b/doc/reference/list_for_each.htm @@ -56,6 +56,10 @@
+

#define BOOST_PP_LIST_FOR_EACH_R(R,F,P,L)

+

Can be used inside BOOST_PP_FOR().

+
+ Prev Next Macros Headers
diff --git a/doc/reference/list_for_each_product.htm b/doc/reference/list_for_each_product.htm index 3615c07..e19bf5f 100644 --- a/doc/reference/list_for_each_product.htm +++ b/doc/reference/list_for_each_product.htm @@ -51,6 +51,10 @@ explosion.


+

#define BOOST_PP_LIST_FOR_EACH_PRODUCT_R(R,F,N,T_OF_L)

+

Can be used inside BOOST_PP_FOR().

+
+ Prev Next Macros Headers
diff --git a/doc/reference/list_rest_n.htm b/doc/reference/list_rest_n.htm index 5a70ebd..9f55d0f 100644 --- a/doc/reference/list_rest_n.htm +++ b/doc/reference/list_rest_n.htm @@ -59,6 +59,10 @@ list L.


+

#define BOOST_PP_LIST_REST_N_D(D,N,L)

+

Can be used inside BOOST_PP_WHILE().

+
+ Prev Next Macros Headers
diff --git a/doc/reference/list_reverse.htm b/doc/reference/list_reverse.htm index 4ce51af..d993e1e 100644 --- a/doc/reference/list_reverse.htm +++ b/doc/reference/list_reverse.htm @@ -53,6 +53,10 @@
+

#define BOOST_PP_LIST_REVERSE_D(D,L)

+

Can be used inside BOOST_PP_WHILE().

+
+ Prev Next Macros Headers
diff --git a/doc/reference/list_size.htm b/doc/reference/list_size.htm index e9242c5..40cb1c8 100644 --- a/doc/reference/list_size.htm +++ b/doc/reference/list_size.htm @@ -49,6 +49,10 @@
+

#define BOOST_PP_LIST_SIZE_D(D,L)

+

Can be used inside BOOST_PP_WHILE().

+
+ Prev Next Macros Headers
diff --git a/doc/reference/list_to_tuple.htm b/doc/reference/list_to_tuple.htm index 7a7f856..50cd365 100644 --- a/doc/reference/list_to_tuple.htm +++ b/doc/reference/list_to_tuple.htm @@ -55,6 +55,10 @@
+

#define BOOST_PP_LIST_TO_TUPLE_R(D,L)

+

Can be used inside BOOST_PP_FOR().

+
+ Prev Next Macros Headers
diff --git a/doc/reference/list_transform.htm b/doc/reference/list_transform.htm index d439fad..eb6f823 100644 --- a/doc/reference/list_transform.htm +++ b/doc/reference/list_transform.htm @@ -43,7 +43,7 @@ of the list producing a new list.

For example,

-  BOOST_PP_LIST_TRANSFORM(BOOST_PP_ADD_D,2,BOOST_PP_TUPLE_TO_LIST(2,(1,2)))
+  BOOST_PP_LIST_TRANSFORM(BOOST_PP_ADD_D,2,BOOST_PP_TUPLE_TO_LIST(2,(1,2)))
 

expands to the same as:

@@ -64,6 +64,10 @@ of the list producing a new list.


+

#define BOOST_PP_LIST_TRANSFORM_D(D,F,P,L)

+

Can be used inside BOOST_PP_WHILE().

+
+ Prev Next Macros Headers
diff --git a/doc/reference/max.htm b/doc/reference/max.htm index c7b0f8e..2915db8 100644 --- a/doc/reference/max.htm +++ b/doc/reference/max.htm @@ -44,6 +44,10 @@ single token).


+

#define BOOST_PP_MAX_D(D,X,Y)

+

Can be used inside BOOST_PP_WHILE().

+
+

#define BOOST_PREPROCESSOR_MAX(X,Y)

Obsolete. Use BOOST_PP_MAX().


diff --git a/doc/reference/min.htm b/doc/reference/min.htm index ab60756..8d42839 100644 --- a/doc/reference/min.htm +++ b/doc/reference/min.htm @@ -44,6 +44,10 @@ single token).


+

#define BOOST_PP_MIN_D(D,X,Y)

+

Can be used inside BOOST_PP_WHILE().

+
+

#define BOOST_PREPROCESSOR_MIN(X,Y)

Obsolete. Use BOOST_PP_MIN().


diff --git a/doc/reference/while.htm b/doc/reference/while.htm index 72dbee4..3f7a1c7 100644 --- a/doc/reference/while.htm +++ b/doc/reference/while.htm @@ -48,7 +48,7 @@ to other macros using BOOST_PP_WHILE(). Such macros include BOOST_PP_ADD() and other arithmetic operations. For each macro using BOOST_PP_WHILE(), there is a version of the macro, distinguished by the - D suffix (e.g. BOOST_PP_ADD_D()), that accepts an additional recursion + D suffix (e.g. BOOST_PP_ADD_D()), that accepts an additional recursion depth as the first parameter. This technique is necessary to avoid recursively expanding the same macro again, which is not permitted by the C++ preprocessor. diff --git a/include/boost/preprocessor/arithmetic/add.hpp b/include/boost/preprocessor/arithmetic/add.hpp index 2e56b52..7bb9e0e 100644 --- a/include/boost/preprocessor/arithmetic/add.hpp +++ b/include/boost/preprocessor/arithmetic/add.hpp @@ -35,6 +35,7 @@ single token).

*/ #define BOOST_PP_ADD(X,Y) BOOST_PP_ADD_D(0,X,Y) +/**

Can be used inside BOOST_PP_WHILE().

*/ #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 # define BOOST_PP_ADD_C(D,P) BOOST_PP_TUPLE_ELEM(2,1,P) diff --git a/include/boost/preprocessor/arithmetic/div.hpp b/include/boost/preprocessor/arithmetic/div.hpp index 5affd77..b1931ae 100644 --- a/include/boost/preprocessor/arithmetic/div.hpp +++ b/include/boost/preprocessor/arithmetic/div.hpp @@ -33,6 +33,7 @@ single token).

*/ #define BOOST_PP_DIV(X,Y) BOOST_PP_DIV_D(0,X,Y) +/**

Can be used inside BOOST_PP_WHILE().

*/ #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 # 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)) diff --git a/include/boost/preprocessor/arithmetic/mod.hpp b/include/boost/preprocessor/arithmetic/mod.hpp index cdaba17..4e1aa9b 100644 --- a/include/boost/preprocessor/arithmetic/mod.hpp +++ b/include/boost/preprocessor/arithmetic/mod.hpp @@ -32,6 +32,7 @@ single token).

*/ #define BOOST_PP_MOD(X,Y) BOOST_PP_MOD_D(0,X,Y) +/**

Can be used inside BOOST_PP_WHILE().

*/ #define BOOST_PP_MOD_D(D,X,Y) BOOST_PP_TUPLE_ELEM(2,0,BOOST_PP_WHILE##D(BOOST_PP_MOD_C,BOOST_PP_MOD_F,(X,Y))) #define BOOST_PP_MOD_C(D,P) BOOST_PP_LESS_EQUAL_D(D,BOOST_PP_TUPLE2_ELEM1 P,BOOST_PP_TUPLE2_ELEM0 P) #define BOOST_PP_MOD_F(D,P) (BOOST_PP_SUB_D(D,BOOST_PP_TUPLE2_ELEM0 P,BOOST_PP_TUPLE2_ELEM1 P),BOOST_PP_TUPLE2_ELEM1 P) diff --git a/include/boost/preprocessor/arithmetic/mul.hpp b/include/boost/preprocessor/arithmetic/mul.hpp index 36a6023..9359ae3 100644 --- a/include/boost/preprocessor/arithmetic/mul.hpp +++ b/include/boost/preprocessor/arithmetic/mul.hpp @@ -32,6 +32,7 @@ single token).

*/ #define BOOST_PP_MUL(X,Y) BOOST_PP_MUL_D(0,X,Y) +/**

Can be used inside BOOST_PP_WHILE().

*/ #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 # define BOOST_PP_MUL_C(D,P) BOOST_PP_TUPLE_ELEM(3,2,P) diff --git a/include/boost/preprocessor/arithmetic/sub.hpp b/include/boost/preprocessor/arithmetic/sub.hpp index cdc5b72..9918b85 100644 --- a/include/boost/preprocessor/arithmetic/sub.hpp +++ b/include/boost/preprocessor/arithmetic/sub.hpp @@ -34,6 +34,7 @@ single token).

*/ #define BOOST_PP_SUB(X,Y) BOOST_PP_SUB_D(0,X,Y) +/**

Can be used inside BOOST_PP_WHILE().

*/ #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 # define BOOST_PP_SUB_C(D,P) BOOST_PP_TUPLE_ELEM(2,1,P) diff --git a/include/boost/preprocessor/comparison/equal.hpp b/include/boost/preprocessor/comparison/equal.hpp index b2077e8..9ac98e3 100644 --- a/include/boost/preprocessor/comparison/equal.hpp +++ b/include/boost/preprocessor/comparison/equal.hpp @@ -31,6 +31,7 @@ otherwise.

*/ #define BOOST_PP_EQUAL(X,Y) BOOST_PP_EQUAL_D(0,X,Y) +/**

Can be used inside BOOST_PP_WHILE().

*/ #define BOOST_PP_EQUAL_D(D,X,Y) BOOST_PP_NOT(BOOST_PP_NOT_EQUAL_D(D,X,Y)) /**

Obsolete. Use BOOST_PP_EQUAL().

*/ diff --git a/include/boost/preprocessor/comparison/greater.hpp b/include/boost/preprocessor/comparison/greater.hpp index 741b7f1..25d2f1f 100644 --- a/include/boost/preprocessor/comparison/greater.hpp +++ b/include/boost/preprocessor/comparison/greater.hpp @@ -30,6 +30,7 @@ otherwise.

*/ #define BOOST_PP_GREATER(X,Y) BOOST_PP_GREATER_D(0,X,Y) +/**

Can be used inside BOOST_PP_WHILE().

*/ #define BOOST_PP_GREATER_D(D,X,Y) BOOST_PP_LESS_D(D,Y,X) /**

Obsolete. Use BOOST_PP_GREATER().

*/ diff --git a/include/boost/preprocessor/comparison/greater_equal.hpp b/include/boost/preprocessor/comparison/greater_equal.hpp index 3e07f42..69a2668 100644 --- a/include/boost/preprocessor/comparison/greater_equal.hpp +++ b/include/boost/preprocessor/comparison/greater_equal.hpp @@ -30,6 +30,7 @@ otherwise.

*/ #define BOOST_PP_GREATER_EQUAL(X,Y) BOOST_PP_GREATER_EQUAL_D(0,X,Y) +/**

Can be used inside BOOST_PP_WHILE().

*/ #define BOOST_PP_GREATER_EQUAL_D(D,X,Y) BOOST_PP_LESS_EQUAL_D(D,Y,X) /**

Obsolete. Use BOOST_PP_GREATER_EQUAL().

*/ diff --git a/include/boost/preprocessor/comparison/less.hpp b/include/boost/preprocessor/comparison/less.hpp index 5f43f7b..d516d3c 100644 --- a/include/boost/preprocessor/comparison/less.hpp +++ b/include/boost/preprocessor/comparison/less.hpp @@ -32,6 +32,7 @@ otherwise.

*/ #define BOOST_PP_LESS(X,Y) BOOST_PP_LESS_D(0,X,Y) +/**

Can be used inside BOOST_PP_WHILE().

*/ #define BOOST_PP_LESS_D(D,X,Y) BOOST_PP_AND(BOOST_PP_NOT_EQUAL_D(D,X,Y),BOOST_PP_LESS_EQUAL_D(D,X,Y)) /**

Obsolete. Use BOOST_PP_LESS().

*/ diff --git a/include/boost/preprocessor/comparison/less_equal.hpp b/include/boost/preprocessor/comparison/less_equal.hpp index a98e52c..ead56bb 100644 --- a/include/boost/preprocessor/comparison/less_equal.hpp +++ b/include/boost/preprocessor/comparison/less_equal.hpp @@ -31,6 +31,7 @@ otherwise.

*/ #define BOOST_PP_LESS_EQUAL(X,Y) BOOST_PP_LESS_EQUAL_D(0,X,Y) +/**

Can be used inside BOOST_PP_WHILE().

*/ #define BOOST_PP_LESS_EQUAL_D(D,X,Y) BOOST_PP_NOT(BOOST_PP_SUB_D(D,X,Y)) /**

Obsolete. Use BOOST_PP_LESS_EQUAL().

*/ diff --git a/include/boost/preprocessor/comparison/not_equal.hpp b/include/boost/preprocessor/comparison/not_equal.hpp index 00cc58f..8ef2ad4 100644 --- a/include/boost/preprocessor/comparison/not_equal.hpp +++ b/include/boost/preprocessor/comparison/not_equal.hpp @@ -32,6 +32,7 @@ otherwise.

*/ #define BOOST_PP_NOT_EQUAL(X,Y) BOOST_PP_NOT_EQUAL_D(0,X,Y) +/**

Can be used inside BOOST_PP_WHILE().

*/ #define BOOST_PP_NOT_EQUAL_D(D,X,Y) BOOST_PP_BOOL(BOOST_PP_ADD_D(D,BOOST_PP_SUB_D(D,X,Y),BOOST_PP_SUB_D(D,Y,X))) /**

Obsolete. Use BOOST_PP_NOT_EQUAL().

*/ diff --git a/include/boost/preprocessor/list/append.hpp b/include/boost/preprocessor/list/append.hpp index 3b4cbfe..0553817 100644 --- a/include/boost/preprocessor/list/append.hpp +++ b/include/boost/preprocessor/list/append.hpp @@ -44,6 +44,7 @@ */ #define BOOST_PP_LIST_APPEND(L,P) BOOST_PP_LIST_APPEND_D(0,L,P) +/**

Can be used inside BOOST_PP_WHILE().

*/ #define BOOST_PP_LIST_APPEND_D(D,L,P) BOOST_PP_LIST_FOLD_RIGHT_D(D,BOOST_PP_LIST_APPEND_F,L,P) #define BOOST_PP_LIST_APPEND_F(D,H,P) (H,P,1) #endif diff --git a/include/boost/preprocessor/list/at.hpp b/include/boost/preprocessor/list/at.hpp index eb77ac0..bd7eb27 100644 --- a/include/boost/preprocessor/list/at.hpp +++ b/include/boost/preprocessor/list/at.hpp @@ -38,5 +38,6 @@ first element is at index 0.

*/ #define BOOST_PP_LIST_AT(L,I) BOOST_PP_LIST_AT_D(0,L,I) +/**

Can be used inside BOOST_PP_WHILE().

*/ #define BOOST_PP_LIST_AT_D(D,L,I) BOOST_PP_LIST_FIRST(BOOST_PP_LIST_REST_N_D(D,I,L)) #endif diff --git a/include/boost/preprocessor/list/cat.hpp b/include/boost/preprocessor/list/cat.hpp index 7b9ac01..09f583a 100644 --- a/include/boost/preprocessor/list/cat.hpp +++ b/include/boost/preprocessor/list/cat.hpp @@ -42,6 +42,7 @@ */ #define BOOST_PP_LIST_CAT(L) BOOST_PP_LIST_CAT_D(0,L) +/**

Can be used inside BOOST_PP_WHILE().

*/ #define BOOST_PP_LIST_CAT_D(D,L) BOOST_PP_LIST_FOLD_LEFT_D(D,BOOST_PP_LIST_CAT_F,BOOST_PP_TUPLE3_ELEM0 L,BOOST_PP_TUPLE3_ELEM1 L) #define BOOST_PP_LIST_CAT_F(D,P,H) BOOST_PP_CAT(P,H) #endif diff --git a/include/boost/preprocessor/list/enum.hpp b/include/boost/preprocessor/list/enum.hpp index 92cd860..6839bad 100644 --- a/include/boost/preprocessor/list/enum.hpp +++ b/include/boost/preprocessor/list/enum.hpp @@ -39,6 +39,7 @@ */ #define BOOST_PP_LIST_ENUM(L) BOOST_PP_LIST_ENUM_R(0,L) +/**

Can be used inside BOOST_PP_FOR().

*/ #define BOOST_PP_LIST_ENUM_R(R,L) BOOST_PP_FOR##R((L,BOOST_PP_EMPTY),BOOST_PP_LIST_ENUM_C,BOOST_PP_LIST_ENUM_F,BOOST_PP_LIST_ENUM_I) #define BOOST_PP_LIST_ENUM_C(R,P) BOOST_PP_TUPLE_ELEM(3,2,BOOST_PP_TUPLE_ELEM(2,0,P)) #define BOOST_PP_LIST_ENUM_F(R,P) (BOOST_PP_TUPLE_ELEM(3,1,BOOST_PP_TUPLE_ELEM(2,0,P)),BOOST_PP_COMMA) diff --git a/include/boost/preprocessor/list/filter.hpp b/include/boost/preprocessor/list/filter.hpp index b9d0525..656d43f 100644 --- a/include/boost/preprocessor/list/filter.hpp +++ b/include/boost/preprocessor/list/filter.hpp @@ -42,6 +42,7 @@ for which F(D,P,X) is true.

*/ #define BOOST_PP_LIST_FILTER(F,P,L) BOOST_PP_LIST_FILTER_D(0,F,P,L) +/**

Can be used inside BOOST_PP_WHILE().

*/ #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 # 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))) diff --git a/include/boost/preprocessor/list/first_n.hpp b/include/boost/preprocessor/list/first_n.hpp index 7955a9a..55ecb89 100644 --- a/include/boost/preprocessor/list/first_n.hpp +++ b/include/boost/preprocessor/list/first_n.hpp @@ -49,6 +49,7 @@ */ #define BOOST_PP_LIST_FIRST_N(N,L) BOOST_PP_LIST_FIRST_N_D(0,N,L) +/**

Can be used inside BOOST_PP_WHILE().

*/ #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 # define BOOST_PP_LIST_FIRST_N_C(D,X) BOOST_PP_TUPLE_ELEM(3,2,X) diff --git a/include/boost/preprocessor/list/fold_left.hpp b/include/boost/preprocessor/list/fold_left.hpp index 6ef5a79..12481ca 100644 --- a/include/boost/preprocessor/list/fold_left.hpp +++ b/include/boost/preprocessor/list/fold_left.hpp @@ -52,6 +52,7 @@ list L (from the left or the start of the list).

*/ #define BOOST_PP_LIST_FOLD_LEFT(F,P,L) BOOST_PP_LIST_FOLD_LEFT_D(0,F,P,L) +/**

Can be used inside BOOST_PP_WHILE().

*/ #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 # define BOOST_PP_LIST_FOLD_LEFT_C(D,X) BOOST_PP_TUPLE_ELEM(3,2,BOOST_PP_TUPLE_ELEM(3,2,X)) diff --git a/include/boost/preprocessor/list/fold_left_2nd.hpp b/include/boost/preprocessor/list/fold_left_2nd.hpp index 92c3022..56cfaeb 100644 --- a/include/boost/preprocessor/list/fold_left_2nd.hpp +++ b/include/boost/preprocessor/list/fold_left_2nd.hpp @@ -19,6 +19,7 @@ /**

Same as BOOST_PP_FOLD_LEFT(), but is implemented independently.

*/ #define BOOST_PP_LIST_FOLD_LEFT_2ND(F,P,L) BOOST_PP_LIST_FOLD_LEFT_2ND_D(0,F,P,L) +/**

Can be used inside BOOST_PP_WHILE().

*/ #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 # define BOOST_PP_LIST_FOLD_LEFT_2ND_C(D,X) BOOST_PP_TUPLE_ELEM(3,2,BOOST_PP_TUPLE_ELEM(3,2,X)) diff --git a/include/boost/preprocessor/list/fold_right.hpp b/include/boost/preprocessor/list/fold_right.hpp index 5363c11..5956bbe 100644 --- a/include/boost/preprocessor/list/fold_right.hpp +++ b/include/boost/preprocessor/list/fold_right.hpp @@ -48,6 +48,7 @@ list L (from the right or the end of the list).

*/ #define BOOST_PP_LIST_FOLD_RIGHT(F,L,P) BOOST_PP_LIST_FOLD_RIGHT_D(0,F,L,P) +/**

Can be used inside BOOST_PP_WHILE().

*/ #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 # 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))) diff --git a/include/boost/preprocessor/list/fold_right_2nd.hpp b/include/boost/preprocessor/list/fold_right_2nd.hpp index 0ef6da2..d7aa4fd 100644 --- a/include/boost/preprocessor/list/fold_right_2nd.hpp +++ b/include/boost/preprocessor/list/fold_right_2nd.hpp @@ -19,6 +19,7 @@ /**

Same as BOOST_PP_LIST_FOLD_RIGHT(), but is implemented independently.

*/ #define BOOST_PP_LIST_FOLD_RIGHT_2ND(F,L,P) BOOST_PP_LIST_FOLD_RIGHT_2ND_D(0,F,L,P) +/**

Can be used inside BOOST_PP_WHILE().

*/ #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 # 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))) diff --git a/include/boost/preprocessor/list/for_each.hpp b/include/boost/preprocessor/list/for_each.hpp index e0b1e9c..36150dd 100644 --- a/include/boost/preprocessor/list/for_each.hpp +++ b/include/boost/preprocessor/list/for_each.hpp @@ -45,6 +45,7 @@ BOOST_PP_LIST_SIZE(L)[.

*/ #define BOOST_PP_LIST_FOR_EACH(F,P,L) BOOST_PP_LIST_FOR_EACH_R(0,F,P,L) +/**

Can be used inside BOOST_PP_FOR().

*/ #define BOOST_PP_LIST_FOR_EACH_R(R,F,P,L) BOOST_PP_FOR##R((F,P,L),BOOST_PP_LIST_FOR_EACH_C,BOOST_PP_LIST_FOR_EACH_F,BOOST_PP_LIST_FOR_EACH_I) #define BOOST_PP_LIST_FOR_EACH_C(R,FPL) BOOST_PP_TUPLE_ELEM(3,2,BOOST_PP_TUPLE_ELEM(3,2,FPL)) #define BOOST_PP_LIST_FOR_EACH_F(R,FPL) (BOOST_PP_TUPLE_ELEM(3,0,FPL),BOOST_PP_TUPLE_ELEM(3,1,FPL),BOOST_PP_TUPLE_ELEM(3,1,BOOST_PP_TUPLE_ELEM(3,2,FPL))) diff --git a/include/boost/preprocessor/list/for_each_product.hpp b/include/boost/preprocessor/list/for_each_product.hpp index 386d034..918480e 100644 --- a/include/boost/preprocessor/list/for_each_product.hpp +++ b/include/boost/preprocessor/list/for_each_product.hpp @@ -43,6 +43,7 @@ explosion.

*/ #define BOOST_PP_LIST_FOR_EACH_PRODUCT(F,N,T_OF_L) BOOST_PP_LIST_FOR_EACH_PRODUCT_R(0,F,N,T_OF_L) +/**

Can be used inside BOOST_PP_FOR().

*/ #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 ||\ !defined(BOOST_NO_COMPILER_CONFIG) && defined(_MSC_VER) diff --git a/include/boost/preprocessor/list/rest_n.hpp b/include/boost/preprocessor/list/rest_n.hpp index dbaffd6..9aa2973 100644 --- a/include/boost/preprocessor/list/rest_n.hpp +++ b/include/boost/preprocessor/list/rest_n.hpp @@ -49,6 +49,7 @@ list L.

*/ #define BOOST_PP_LIST_REST_N(N,L) BOOST_PP_LIST_REST_N_D(0,N,L) +/**

Can be used inside BOOST_PP_WHILE().

*/ #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 # define BOOST_PP_LIST_REST_N_C(D,X) BOOST_PP_TUPLE_ELEM(2,1,X) diff --git a/include/boost/preprocessor/list/reverse.hpp b/include/boost/preprocessor/list/reverse.hpp index 9cb752c..95fe49c 100644 --- a/include/boost/preprocessor/list/reverse.hpp +++ b/include/boost/preprocessor/list/reverse.hpp @@ -41,6 +41,7 @@ */ #define BOOST_PP_LIST_REVERSE(L) BOOST_PP_LIST_REVERSE_D(0,L) +/**

Can be used inside BOOST_PP_WHILE().

*/ #define BOOST_PP_LIST_REVERSE_D(D,L) BOOST_PP_LIST_FOLD_LEFT_D(D,BOOST_PP_LIST_REVERSE_F,(_,_,0),L) #define BOOST_PP_LIST_REVERSE_F(D,P,H) (H,P,1) #endif diff --git a/include/boost/preprocessor/list/size.hpp b/include/boost/preprocessor/list/size.hpp index 8c23df7..725015b 100644 --- a/include/boost/preprocessor/list/size.hpp +++ b/include/boost/preprocessor/list/size.hpp @@ -38,6 +38,7 @@ */ #define BOOST_PP_LIST_SIZE(L) BOOST_PP_LIST_SIZE_D(0,L) +/**

Can be used inside BOOST_PP_WHILE().

*/ #define BOOST_PP_LIST_SIZE_D(D,L) BOOST_PP_LIST_FOLD_LEFT_D(D,BOOST_PP_LIST_SIZE_F,0,L) #define BOOST_PP_LIST_SIZE_F(D,P,H) BOOST_PP_INC(P) #endif diff --git a/include/boost/preprocessor/list/to_tuple.hpp b/include/boost/preprocessor/list/to_tuple.hpp index 5b2ebb0..ec3b02f 100644 --- a/include/boost/preprocessor/list/to_tuple.hpp +++ b/include/boost/preprocessor/list/to_tuple.hpp @@ -43,5 +43,6 @@ */ #define BOOST_PP_LIST_TO_TUPLE(L) BOOST_PP_LIST_TO_TUPLE_R(0,L) +/**

Can be used inside BOOST_PP_FOR().

*/ #define BOOST_PP_LIST_TO_TUPLE_R(D,L) (BOOST_PP_LIST_ENUM_R(D,L)) #endif diff --git a/include/boost/preprocessor/list/transform.hpp b/include/boost/preprocessor/list/transform.hpp index 74bef5c..2731f79 100644 --- a/include/boost/preprocessor/list/transform.hpp +++ b/include/boost/preprocessor/list/transform.hpp @@ -52,6 +52,7 @@ of the list producing a new list.

*/ #define BOOST_PP_LIST_TRANSFORM(F,P,L) BOOST_PP_LIST_TRANSFORM_D(0,F,P,L) +/**

Can be used inside BOOST_PP_WHILE().

*/ #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 # 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)) diff --git a/include/boost/preprocessor/max.hpp b/include/boost/preprocessor/max.hpp index 1fc1ab9..1ea61ae 100644 --- a/include/boost/preprocessor/max.hpp +++ b/include/boost/preprocessor/max.hpp @@ -33,6 +33,7 @@ single token).

*/ #define BOOST_PP_MAX(X,Y) BOOST_PP_MAX_D(0,X,Y) +/**

Can be used inside BOOST_PP_WHILE().

*/ #define BOOST_PP_MAX_D(D,X,Y) BOOST_PP_IF(BOOST_PP_LESS_EQUAL_D(D,X,Y),Y,X) /**

Obsolete. Use BOOST_PP_MAX().

*/ diff --git a/include/boost/preprocessor/min.hpp b/include/boost/preprocessor/min.hpp index eb5339f..f7d8a9d 100644 --- a/include/boost/preprocessor/min.hpp +++ b/include/boost/preprocessor/min.hpp @@ -33,6 +33,7 @@ single token).

*/ #define BOOST_PP_MIN(X,Y) BOOST_PP_MIN_D(0,X,Y) +/**

Can be used inside BOOST_PP_WHILE().

*/ #define BOOST_PP_MIN_D(D,X,Y) BOOST_PP_IF(BOOST_PP_LESS_EQUAL_D(D,Y,X),Y,X) /**

Obsolete. Use BOOST_PP_MIN().

*/