diff --git a/include/boost/preprocessor/arithmetic.hpp b/include/boost/preprocessor/arithmetic.hpp index dbbdf0d..2ecacde 100644 --- a/include/boost/preprocessor/arithmetic.hpp +++ b/include/boost/preprocessor/arithmetic.hpp @@ -13,12 +13,7 @@ * See http://www.boost.org for most recent version. */ -/** \file - -Click here to see the header. - -Includes all arithmetic headers. -*/ +/**

Includes all arithmetic headers.

*/ #include #include diff --git a/include/boost/preprocessor/arithmetic/add.hpp b/include/boost/preprocessor/arithmetic/add.hpp index 4f0be0b..e930ba4 100644 --- a/include/boost/preprocessor/arithmetic/add.hpp +++ b/include/boost/preprocessor/arithmetic/add.hpp @@ -40,6 +40,6 @@ #endif #endif -/** Obsolete. Use BOOST_PP_ADD(). */ +/**

Obsolete. Use BOOST_PP_ADD().

*/ #define BOOST_PREPROCESSOR_ADD(X,Y) BOOST_PP_ADD(X,Y) #endif diff --git a/include/boost/preprocessor/arithmetic/div.hpp b/include/boost/preprocessor/arithmetic/div.hpp index 30718e9..4b47044 100644 --- a/include/boost/preprocessor/arithmetic/div.hpp +++ b/include/boost/preprocessor/arithmetic/div.hpp @@ -38,6 +38,6 @@ #endif #endif -/** Obsolete. Use BOOST_PP_DIV(). */ +/**

Obsolete. Use BOOST_PP_DIV().

*/ #define BOOST_PREPROCESSOR_DIV(X,Y) BOOST_PP_DIV(X,Y) #endif diff --git a/include/boost/preprocessor/arithmetic/mod.hpp b/include/boost/preprocessor/arithmetic/mod.hpp index ce66f1d..aa3f2c8 100644 --- a/include/boost/preprocessor/arithmetic/mod.hpp +++ b/include/boost/preprocessor/arithmetic/mod.hpp @@ -32,6 +32,6 @@ #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) #endif -/** Obsolete. Use BOOST_PP_MOD(). */ +/**

Obsolete. Use BOOST_PP_MOD().

*/ #define BOOST_PREPROCESSOR_MOD(X,Y) BOOST_PP_MOD(X,Y) #endif diff --git a/include/boost/preprocessor/arithmetic/mul.hpp b/include/boost/preprocessor/arithmetic/mul.hpp index 780e0de..d81308b 100644 --- a/include/boost/preprocessor/arithmetic/mul.hpp +++ b/include/boost/preprocessor/arithmetic/mul.hpp @@ -37,6 +37,6 @@ #endif #endif -/** Obsolete. Use BOOST_PP_MUL(). */ +/**

Obsolete. Use BOOST_PP_MUL().

*/ #define BOOST_PREPROCESSOR_MUL(X,Y) BOOST_PP_MUL(X,Y) #endif diff --git a/include/boost/preprocessor/arithmetic/sub.hpp b/include/boost/preprocessor/arithmetic/sub.hpp index 7a2fe4a..8e7309d 100644 --- a/include/boost/preprocessor/arithmetic/sub.hpp +++ b/include/boost/preprocessor/arithmetic/sub.hpp @@ -39,6 +39,6 @@ #endif #endif -/** Obsolete. Use BOOST_PP_SUB(X,Y). */ +/**

Obsolete. Use BOOST_PP_SUB(X,Y).

*/ #define BOOST_PREPROCESSOR_SUB(X,Y) BOOST_PP_SUB(X,Y) #endif diff --git a/include/boost/preprocessor/assert_msg.hpp b/include/boost/preprocessor/assert_msg.hpp index d371563..723b521 100644 --- a/include/boost/preprocessor/assert_msg.hpp +++ b/include/boost/preprocessor/assert_msg.hpp @@ -13,17 +13,12 @@ * See http://www.boost.org for most recent version. */ -/** \file - -Click here to see the header. -*/ - #include #include -/** Expands to nothing if C != 0 and to MSG if C == 0. */ +/**

Expands to nothing if C != 0 and to MSG if C == 0.

*/ #define BOOST_PP_ASSERT_MSG(C,MSG) BOOST_PP_IF(C,BOOST_PP_EMPTY,MSG BOOST_PP_EMPTY)() -/** Obsolete. Use BOOST_PP_ASSERT_MSG(). */ +/**

Obsolete. Use BOOST_PP_ASSERT_MSG().

*/ #define BOOST_PREPROCESSOR_ASSERT_MSG(C,MSG) BOOST_PP_ASSERT_MSG(C,MSG) #endif diff --git a/include/boost/preprocessor/cat.hpp b/include/boost/preprocessor/cat.hpp index 98c8e4a..8ff1930 100644 --- a/include/boost/preprocessor/cat.hpp +++ b/include/boost/preprocessor/cat.hpp @@ -13,16 +13,11 @@ * See http://www.boost.org for most recent version. */ -/** \file +/**

Delays the catenation of X and Y.

-Click here to see the header. -*/ +

For example,

-/** Delays the catenation of X and Y. - -For example, - -
\verbatim
+
   #define STATIC_ASSERT(EXPR)\
     enum\
     { BOOST_PP_CAT(static_check_,__LINE__) = (EXPR) ? 1 : -1\
@@ -35,11 +30,11 @@ For example,
   // ...
 
   STATIC_ASSERT(sizeof(int) <= sizeof(long));
-\endverbatim
+
-expands to: +

expands to:

-
\verbatim
+
   enum
   { static_check_152 = (sizeof(int) <= sizeof(long)) ? 1 : -1
   };
@@ -47,13 +42,13 @@ expands to:
     static_assert_152
     [ static_check_152
     ];
-\endverbatim
+
-Using BOOST_PP_CAT() above lets the PP expand the __LINE__. If the above code -would use the ## operator directly then __LINE__ would not be expanded and -the above would expand to: +

Using BOOST_PP_CAT() above lets the PP expand the __LINE__. If the above +code would use the ## operator directly then __LINE__ would not be expanded and +the above would expand to:

-
\verbatim
+
   enum
   { static_check___LINE__ = (sizeof(int) <= sizeof(long)) ? 1 : -1
   };
@@ -61,7 +56,7 @@ the above would expand to:
     static_assert___LINE__
     [ static_check___LINE__
     ];
-\endverbatim
+
*/ #define BOOST_PP_CAT(X,Y) BOOST_PP_CAT_DELAY(X,Y) @@ -70,6 +65,6 @@ the above would expand to: #define BOOST_PP_DO_CAT(X,Y) X##Y #endif -/** Obsolete. Use BOOST_PP_CAT(). */ +/**

Obsolete. Use BOOST_PP_CAT().

*/ #define BOOST_PREPROCESSOR_CAT(X,Y) BOOST_PP_CAT(X,Y) #endif diff --git a/include/boost/preprocessor/comma.hpp b/include/boost/preprocessor/comma.hpp index 7f8e200..89cd08e 100644 --- a/include/boost/preprocessor/comma.hpp +++ b/include/boost/preprocessor/comma.hpp @@ -13,18 +13,15 @@ * See http://www.boost.org for most recent version. */ -/** \file - -Click here to see the header. -*/ - -/** Expands to a comma. Can be used with BOOST_PP_IF(). +/**

Expands to a comma. Can be used with BOOST_PP_IF().

See

-- BOOST_PP_COMMA_IF() +
    +
  • BOOST_PP_COMMA_IF() +
*/ #define BOOST_PP_COMMA() , -/** Obsolete. Use BOOST_PP_COMMA(). */ +/**

Obsolete. Use BOOST_PP_COMMA().

*/ #define BOOST_PREPROCESSOR_COMMA() , #endif diff --git a/include/boost/preprocessor/comma_if.hpp b/include/boost/preprocessor/comma_if.hpp index 63ed0e0..42a605b 100644 --- a/include/boost/preprocessor/comma_if.hpp +++ b/include/boost/preprocessor/comma_if.hpp @@ -13,18 +13,13 @@ * See http://www.boost.org for most recent version. */ -/** \file - -Click here to see the header. -*/ - #include #include #include -/** Expands to a comma if C != 0 and nothing if C == 0. */ +/**

Expands to a comma if C != 0 and nothing if C == 0.

*/ #define BOOST_PP_COMMA_IF(C) BOOST_PP_IF(C,BOOST_PP_COMMA,BOOST_PP_EMPTY)() -/** Obsolete. Use BOOST_PP_COMMA_IF(). */ +/**

Obsolete. Use BOOST_PP_COMMA_IF().

*/ #define BOOST_PREPROCESSOR_COMMA_IF(C) BOOST_PP_COMMA_IF(C) #endif diff --git a/include/boost/preprocessor/comparison.hpp b/include/boost/preprocessor/comparison.hpp index 4ead9ac..7dc417b 100644 --- a/include/boost/preprocessor/comparison.hpp +++ b/include/boost/preprocessor/comparison.hpp @@ -13,12 +13,7 @@ * See http://www.boost.org for most recent version. */ -/** \file - -Click here to see the header. - -Includes all comparison headers. -*/ +/**

Includes all comparison headers.

*/ #include #include diff --git a/include/boost/preprocessor/comparison/equal.hpp b/include/boost/preprocessor/comparison/equal.hpp index ac00a75..494db20 100644 --- a/include/boost/preprocessor/comparison/equal.hpp +++ b/include/boost/preprocessor/comparison/equal.hpp @@ -29,6 +29,6 @@ #define BOOST_PP_EQUAL_D(D,X,Y) BOOST_PP_NOT(BOOST_PP_NOT_EQUAL_D(D,X,Y)) #endif -/** Obsolete. Use BOOST_PP_EQUAL(). */ +/**

Obsolete. Use BOOST_PP_EQUAL().

*/ #define BOOST_PREPROCESSOR_EQUAL(X,Y) BOOST_PP_EQUAL(X,Y) #endif diff --git a/include/boost/preprocessor/comparison/greater.hpp b/include/boost/preprocessor/comparison/greater.hpp index 4a9c38b..002d159 100644 --- a/include/boost/preprocessor/comparison/greater.hpp +++ b/include/boost/preprocessor/comparison/greater.hpp @@ -28,6 +28,6 @@ #define BOOST_PP_GREATER_D(D,X,Y) BOOST_PP_LESS_D(D,Y,X) #endif -/** Obsolete. Use BOOST_PP_GREATER(). */ +/**

Obsolete. Use BOOST_PP_GREATER().

*/ #define BOOST_PREPROCESSOR_GREATER(X,Y) BOOST_PP_GREATER(X,Y) #endif diff --git a/include/boost/preprocessor/comparison/greater_equal.hpp b/include/boost/preprocessor/comparison/greater_equal.hpp index 6587ace..9b4bc77 100644 --- a/include/boost/preprocessor/comparison/greater_equal.hpp +++ b/include/boost/preprocessor/comparison/greater_equal.hpp @@ -28,6 +28,6 @@ #define BOOST_PP_GREATER_EQUAL_D(D,X,Y) BOOST_PP_LESS_EQUAL_D(D,Y,X) #endif -/** Obsolete. Use BOOST_PP_GREATER_EQUAL(). */ +/**

Obsolete. Use BOOST_PP_GREATER_EQUAL().

*/ #define BOOST_PREPROCESSOR_GREATER_EQUAL(X,Y) BOOST_PP_GREATER_EQUAL(X,Y) #endif diff --git a/include/boost/preprocessor/comparison/less.hpp b/include/boost/preprocessor/comparison/less.hpp index 11ed184..43f6c7e 100644 --- a/include/boost/preprocessor/comparison/less.hpp +++ b/include/boost/preprocessor/comparison/less.hpp @@ -30,6 +30,6 @@ #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)) #endif -/** Obsolete. Use BOOST_PP_LESS(). */ +/**

Obsolete. Use BOOST_PP_LESS().

*/ #define BOOST_PREPROCESSOR_LESS(X,Y) BOOST_PP_LESS(X,Y) #endif diff --git a/include/boost/preprocessor/comparison/less_equal.hpp b/include/boost/preprocessor/comparison/less_equal.hpp index 9976bed..0b48322 100644 --- a/include/boost/preprocessor/comparison/less_equal.hpp +++ b/include/boost/preprocessor/comparison/less_equal.hpp @@ -29,6 +29,6 @@ #define BOOST_PP_LESS_EQUAL_D(D,X,Y) BOOST_PP_NOT(BOOST_PP_SUB_D(D,X,Y)) #endif -/** Obsolete. Use BOOST_PP_LESS_EQUAL(). */ +/**

Obsolete. Use BOOST_PP_LESS_EQUAL().

*/ #define BOOST_PREPROCESSOR_LESS_EQUAL(X,Y) BOOST_PP_LESS_EQUAL(X,Y) #endif diff --git a/include/boost/preprocessor/comparison/not_equal.hpp b/include/boost/preprocessor/comparison/not_equal.hpp index dfac0af..c4de120 100644 --- a/include/boost/preprocessor/comparison/not_equal.hpp +++ b/include/boost/preprocessor/comparison/not_equal.hpp @@ -30,6 +30,6 @@ #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))) #endif -/** Obsolete. Use BOOST_PP_NOT_EQUAL(). */ +/**

Obsolete. Use BOOST_PP_NOT_EQUAL().

*/ #define BOOST_PREPROCESSOR_NOT_EQUAL(X,Y) BOOST_PP_NOT_EQUAL(X,Y) #endif diff --git a/include/boost/preprocessor/dec.hpp b/include/boost/preprocessor/dec.hpp index 1bad53c..29fbd67 100644 --- a/include/boost/preprocessor/dec.hpp +++ b/include/boost/preprocessor/dec.hpp @@ -13,19 +13,14 @@ * See http://www.boost.org for most recent version. */ -/** \file +/**

Decrements X expanding to a single token.

-Click here to see the header. -*/ +

For example, BOOST_PP_DEC(3) expands to 2 (a single token).

-/** Decrements X expanding to a single token. +

BOOST_PP_DEC() uses saturation arithmetic. Decrementing 0 yeilds a 0.

-For example, BOOST_PP_DEC(3) expands to 2 (a single token). - -BOOST_PP_DEC() uses saturation arithmetic. Decrementing 0 yeilds a 0. - -Only decimal integer literals in the range [0,BOOST_PP_LIMIT_MAG] are -supported. +

Only decimal integer literals in the range [0,BOOST_PP_LIMIT_MAG] are +supported.

*/ #define BOOST_PP_DEC(X) BOOST_PP_DEC_DELAY(X) @@ -162,6 +157,6 @@ supported. #define BOOST_PP_DEC128 127 #endif -/** Obsolete. Use BOOST_PP_DEC(). */ +/**

Obsolete. Use BOOST_PP_DEC().

*/ #define BOOST_PREPROCESSOR_DEC(X) BOOST_PP_DEC(X) #endif diff --git a/include/boost/preprocessor/empty.hpp b/include/boost/preprocessor/empty.hpp index d41872c..ee5d17b 100644 --- a/include/boost/preprocessor/empty.hpp +++ b/include/boost/preprocessor/empty.hpp @@ -13,41 +13,36 @@ * See http://www.boost.org for most recent version. */ -/** \file +/**

Expands to nothing. Used with BOOST_PP_IF() and as an unused parameter.

-Click here to see the header. -*/ +

Example usage as the implementation of BOOST_PP_COMMA_IF(C):

-/** Expands to nothing. Used with BOOST_PP_IF() and as an unused parameter. - -Example usage as the implementation of BOOST_PP_COMMA_IF(C): - -
\verbatim
+
   #define BOOST_PP_COMMA_IF(C)\
     BOOST_PP_IF(C,BOOST_PP_COMMA,BOOST_PP_EMPTY)()
-\endverbatim
+
-Example usage as an unused macro parameter: +

Example usage as an unused macro parameter:

-
\verbatim
+
   #define BOOST_PP_DEF(CV)\
-    template            \
-    CV typename implement_subscript_using_begin_subscript::value_type&\
+    template\
+    CV() typename implement_subscript_using_begin_subscript::value_type&\
       implement_subscript_using_begin_subscript::operator[]\
-      ( index_type                  \
-          i                         \
-      ) CV                          \
-    { return base::begin()[i];      \
+      ( index_type\
+          i\
+      ) CV()\
+    { return base::begin()[i];\
     }
 
-  BOOST_PP_DEF(BOOST_PP_EMPTY())
-  BOOST_PP_DEF(const)
+  BOOST_PP_DEF(BOOST_PP_EMPTY)
+  BOOST_PP_DEF(const BOOST_PP_EMPTY)
   #undef BOOST_PP_DEF
-\endverbatim
+
-The above expands to: +

The above expands to:

-
\verbatim
+
   template
   typename implement_subscript_using_begin_subscript::value_type&
     implement_subscript_using_begin_subscript::operator[]
@@ -65,13 +60,13 @@ The above expands to:
     ) const
   { return base::begin()[i];
   }
-\endverbatim
+
-In case you wonder, the above code is part of a generalized layer for -implementing the subscripting operators of a random access container. +

In case you wonder, the above code is part of a generalized layer for +implementing the subscripting operators of a random access container.

*/ #define BOOST_PP_EMPTY() -/** Obsolete. Use BOOST_PP_EMPTY(). */ +/**

Obsolete. Use BOOST_PP_EMPTY().

*/ #define BOOST_PREPROCESSOR_EMPTY() #endif diff --git a/include/boost/preprocessor/enum.hpp b/include/boost/preprocessor/enum.hpp index 1c03581..cf2d37b 100644 --- a/include/boost/preprocessor/enum.hpp +++ b/include/boost/preprocessor/enum.hpp @@ -13,25 +13,22 @@ * See http://www.boost.org for most recent version. */ -/** \file - -Click here to see the header. -*/ - #include #include #include -/** Generates a comma separated list. +/**

Generates a comma separated list.

-In other words, expands to the sequence: +

In other words, expands to the sequence:

-
\verbatim
+
   F(0,P), F(1,P), ..., F(N-1,P)
-\endverbatim
+

Uses

-- BOOST_PP_REPEAT() +
    +
  • BOOST_PP_REPEAT() +
*/ #define BOOST_PP_ENUM(N,F,P) BOOST_PP_REPEAT(N,BOOST_PP_ENUM_F,(F,P)) diff --git a/include/boost/preprocessor/enum_params.hpp b/include/boost/preprocessor/enum_params.hpp index 5b56f5a..8053f0c 100644 --- a/include/boost/preprocessor/enum_params.hpp +++ b/include/boost/preprocessor/enum_params.hpp @@ -13,24 +13,21 @@ * See http://www.boost.org for most recent version. */ -/** \file - -Click here to see the header. -*/ - #include #include -/** Generates a comma separated list of parameters. +/**

Generates a comma separated list of parameters.

-In other words, expands to the sequence: +

In other words, expands to the sequence:

-
\verbatim
+
   P##0, P##1, ..., P##N-1
-\endverbatim
+

Uses

-- BOOST_PP_REPEAT() +
    +
  • BOOST_PP_REPEAT() +
*/ #define BOOST_PP_ENUM_PARAMS(N,P) BOOST_PP_ENUM(N,BOOST_PP_ENUM_PARAMS_F,P) @@ -38,6 +35,6 @@ In other words, expands to the sequence: #define BOOST_PP_ENUM_PARAMS_F(I,P) BOOST_PP_CAT(P,I) #endif -/** Obsolete. Use BOOST_PP_ENUM_PARAMS(). */ +/**

Obsolete. Use BOOST_PP_ENUM_PARAMS().

*/ #define BOOST_PREPROCESSOR_ENUM_PARAMS(N,P) BOOST_PP_ENUM_PARAMS(N,P) #endif diff --git a/include/boost/preprocessor/enum_params_with_a_default.hpp b/include/boost/preprocessor/enum_params_with_a_default.hpp index b6ab820..96b396f 100644 --- a/include/boost/preprocessor/enum_params_with_a_default.hpp +++ b/include/boost/preprocessor/enum_params_with_a_default.hpp @@ -13,24 +13,21 @@ * See http://www.boost.org for most recent version. */ -/** \file - -Click here to see the header. -*/ - #include #include -/** Generates a comma separated list of parameters with a default. +/**

Generates a comma separated list of parameters with a default.

-In other words, expands to the sequence: +

In other words, expands to the sequence:

-
\verbatim
+
   P##0 = D, P##1 = D, ..., P##N-1 = D
-\endverbatim
+

Uses

-- BOOST_PP_REPEAT() +
    +
  • BOOST_PP_REPEAT() +
*/ #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)) @@ -42,6 +39,6 @@ In other words, expands to the sequence: #endif #endif -/** Obsolete. Use BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT(). */ +/**

Obsolete. Use BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT().

*/ #define BOOST_PREPROCESSOR_ENUM_PARAMS_WITH_A_DEFAULT(N,P,D) BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT(N,P,D) #endif diff --git a/include/boost/preprocessor/enum_params_with_defaults.hpp b/include/boost/preprocessor/enum_params_with_defaults.hpp index e79d4d8..c7583c3 100644 --- a/include/boost/preprocessor/enum_params_with_defaults.hpp +++ b/include/boost/preprocessor/enum_params_with_defaults.hpp @@ -13,24 +13,21 @@ * See http://www.boost.org for most recent version. */ -/** \file - -Click here to see the header. -*/ - #include #include -/** Generates a comma separated list of parameters with defaults. +/**

Generates a comma separated list of parameters with defaults.

-In other words, expands to the sequence: +

In other words, expands to the sequence:

-
\verbatim
+
   P##0 = D##0, P##1 = D##1, ..., P##N-1 = D##N-1
-\endverbatim
+

Uses

-- BOOST_PP_REPEAT() +
    +
  • BOOST_PP_REPEAT() +
*/ #define BOOST_PP_ENUM_PARAMS_WITH_DEFAULTS(N,P,D) BOOST_PP_ENUM(N,BOOST_PP_ENUM_PARAMS_WITH_DEFAULTS_F,(P,D)) @@ -42,6 +39,6 @@ In other words, expands to the sequence: #endif #endif -/** Obsolete. Use BOOST_PP_ENUM_PARAMS_WITH_DEFAULTS(). */ +/**

Obsolete. Use BOOST_PP_ENUM_PARAMS_WITH_DEFAULTS().

*/ #define BOOST_PREPROCESSOR_ENUM_PARAMS_WITH_DEFAULTS(N,P,D) BOOST_PP_ENUM_PARAMS_WITH_DEFAULTS(N,P,D) #endif diff --git a/include/boost/preprocessor/enum_shifted.hpp b/include/boost/preprocessor/enum_shifted.hpp index 4515253..29c29fe 100644 --- a/include/boost/preprocessor/enum_shifted.hpp +++ b/include/boost/preprocessor/enum_shifted.hpp @@ -13,25 +13,22 @@ * See http://www.boost.org for most recent version. */ -/** \file - -Click here to see the header. -*/ - #include #include #include -/** Generates a comma separated shifted list. +/**

Generates a comma separated shifted list.

-In other words, expands to the sequence: +

In other words, expands to the sequence:

-
\verbatim
+
   F(1,P), F(2,P), ..., F(N-1,P)
-\endverbatim
+

Uses

-- BOOST_PP_REPEAT() +
    +
  • BOOST_PP_REPEAT() +
*/ #define BOOST_PP_ENUM_SHIFTED(N,F,P) BOOST_PP_ENUM(BOOST_PP_DEC(N),BOOST_PP_ENUM_SHIFTED_F,(F,P)) diff --git a/include/boost/preprocessor/enum_shifted_params.hpp b/include/boost/preprocessor/enum_shifted_params.hpp index c0ed3dd..e3e3eba 100644 --- a/include/boost/preprocessor/enum_shifted_params.hpp +++ b/include/boost/preprocessor/enum_shifted_params.hpp @@ -13,28 +13,27 @@ * See http://www.boost.org for most recent version. */ -/** \file - -Click here to see the header. -*/ - #include #include -/** Generates a comma separated list of shifted actual parameters. +/**

Generates a comma separated list of shifted actual parameters.

-In other words, expands to the sequence: +

In other words, expands to the sequence:

-
\verbatim
+
   P##1, P##2, ..., P##N-1
-\endverbatim
+

Uses

-- BOOST_PP_REPEAT() +
    +
  • BOOST_PP_REPEAT() +

Rationale

-- This macro facilitates a typical usage of the library. Shifted parameter -lists are common in template metaprograms. +
    +
  • This macro facilitates a typical usage of the library. Shifted parameter + lists are common in template metaprograms. +
*/ #define BOOST_PP_ENUM_SHIFTED_PARAMS(N,P) BOOST_PP_ENUM_SHIFTED(N,BOOST_PP_ENUM_SHIFTED_PARAMS_F,P) @@ -42,6 +41,6 @@ lists are common in template metaprograms. #define BOOST_PP_ENUM_SHIFTED_PARAMS_F(I,P) BOOST_PP_CAT(P,I) #endif -/** Obsolete. Use BOOST_PP_ENUM_SHIFTED_PARAMS(). */ +/**

Obsolete. Use BOOST_PP_ENUM_SHIFTED_PARAMS().

*/ #define BOOST_PREPROCESSOR_ENUM_SHIFTED_PARAMS(N,P) BOOST_PP_ENUM_SHIFTED_PARAMS(N,P) #endif diff --git a/include/boost/preprocessor/expand.hpp b/include/boost/preprocessor/expand.hpp index 5b132e4..7ad8bfe 100644 --- a/include/boost/preprocessor/expand.hpp +++ b/include/boost/preprocessor/expand.hpp @@ -13,13 +13,8 @@ * See http://www.boost.org for most recent version. */ -/** \file - -Click here to see the header. -*/ - #include -/** Essentially macro expands the parameter X twice. */ +/**

Essentially macro expands the parameter X twice.

*/ #define BOOST_PP_EXPAND(X) X #endif diff --git a/include/boost/preprocessor/for.hpp b/include/boost/preprocessor/for.hpp index c0df36c..7d0e13d 100644 --- a/include/boost/preprocessor/for.hpp +++ b/include/boost/preprocessor/for.hpp @@ -13,51 +13,48 @@ * See http://www.boost.org for most recent version. */ -/** \file - -Click here to see the header. -*/ - #include #include -/** Repeats I(R,X) and iterates F(R,X) while C(R,X) is true. +/**

Repeats I(R,X) and iterates F(R,X) while C(R,X) is true.

-In other words, expands to the sequence: +

In other words, expands to the sequence:

-
\verbatim
+
   I(R,X)  I(R,F(R,X))  I(R,F(R,F(R,X)))  ...  I(R,F(R,F(...F(R,X)...)))
-\endverbatim
+
-The length of the sequence is determined by C(R,X). +

The length of the sequence is determined by C(R,X).

Legend

- -- X is the current state of iteration. The state is usually a tuple. -- C is the condition for iteration. It must expand to a decimal integer -literal. -- F is the iterated macro. Note that if the state is a tuple, then -F(R,X) usually expands to a tuple of the same number of elements. -- I is the state instantiation macro. -- R is the recursion depth and should only be used as a parameter to -other macros using BOOST_PP_FOR() or for invoking BOOST_PP_FOR##R() directly. -For each macro using BOOST_PP_FOR(), there is a version of the macro, -distinguished by the R suffix, 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. +
    +
  • X is the current state of iteration. The state is usually a tuple. +
  • C is the condition for iteration. It must expand to a decimal + integer literal. +
  • F is the iterated macro. Note that if the state is a tuple, then + F(R,X) usually expands to a tuple of the same number of elements. +
  • I is the state instantiation macro. +
  • R is the recursion depth and should only be used as a parameter to + other macros using BOOST_PP_FOR() or for invoking BOOST_PP_FOR##R() + directly. For each macro using BOOST_PP_FOR(), there is a version of the + macro, distinguished by the R suffix, 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. +

BOOST_PP_REPEAT() vs BOOST_PP_FOR()

-BOOST_PP_FOR() is a generalization of BOOST_PP_REPEAT(). This means that +

BOOST_PP_FOR() is a generalization of BOOST_PP_REPEAT(). This means that BOOST_PP_REPEAT() can be implemented using BOOST_PP_FOR(). Unfortunately, BOOST_PP_FOR() is slower than BOOST_PP_REPEAT(). In addition, BOOST_PP_REPEAT() was introduced earlier, is generally easier to use, and is -still quite useful on its own. +still quite useful on its own.

2D and 3D repetition

-BOOST_PP_FOR() can be used for multidimensional repetition simply by invoking -BOOST_PP_FOR##R() directly. +

BOOST_PP_FOR() can be used for multidimensional repetition simply by +invoking BOOST_PP_FOR##R() directly.

*/ #define BOOST_PP_FOR(X,C,F,I) BOOST_PP_FOR0(X,C,F,I) diff --git a/include/boost/preprocessor/identity.hpp b/include/boost/preprocessor/identity.hpp index 5cdb4d3..193d4b0 100644 --- a/include/boost/preprocessor/identity.hpp +++ b/include/boost/preprocessor/identity.hpp @@ -13,34 +13,30 @@ * See http://www.boost.org for most recent version. */ -/** \file - -Click here to see the header. -*/ - #include -/** Expands to X once invoked. +/**

Expands to X once invoked.

-Designed to be used with BOOST_PP_IF(), when one of the clauses need to be invoked. +

Designed to be used with BOOST_PP_IF(), when one of the clauses need to be +invoked.

-For example, +

For example,

-
\verbatim
-  BOOST_PP_IDENTITY(X)()
-  //                  ^^ NOTE!
-\endverbatim
+
+  BOOST_PP_IDENTITY(X)()
+
-expands to: +

expands to:

-
\verbatim
+
   X
-\endverbatim
+
-NOTE: If BOOST_PP_IDENTITY() is not invoked, the expansion will not be usable. +

NOTE: If BOOST_PP_IDENTITY() is not invoked, the expansion will not be +usable.

*/ #define BOOST_PP_IDENTITY(X) X BOOST_PP_EMPTY -/** Obsolete. Use BOOST_PP_IDENTITY(). */ +/**

Obsolete. Use BOOST_PP_IDENTITY().

*/ #define BOOST_PREPROCESSOR_IDENTITY(X) BOOST_PP_IDENTITY(X) #endif diff --git a/include/boost/preprocessor/if.hpp b/include/boost/preprocessor/if.hpp index 7ad2412..dddd365 100644 --- a/include/boost/preprocessor/if.hpp +++ b/include/boost/preprocessor/if.hpp @@ -13,17 +13,13 @@ * See http://www.boost.org for most recent version. */ -/** \file - -Click here to see the header. -*/ - #include #include -/** Expands to T if C != 0 and E if C == 0. -BOOST_PP_IF() enables convenient generation of lists using -BOOST_PP_REPEAT(). +/**

Expands to T if C != 0 and E if C == 0.

+ +

BOOST_PP_IF() enables convenient generation of lists using +BOOST_PP_REPEAT().

*/ #define BOOST_PP_IF(C,T,E) BOOST_PP_IF_BOOL(BOOST_PP_BOOL(C))(E,T) @@ -32,6 +28,6 @@ BOOST_PP_REPEAT(). #define BOOST_PP_IF_BOOL_DELAY(C) BOOST_PP_TUPLE2_ELEM##C #endif -/** Obsolete. Use BOOST_PP_IF(). */ +/**

Obsolete. Use BOOST_PP_IF().

*/ #define BOOST_PREPROCESSOR_IF(C,T,E) BOOST_PP_IF(C,T,E) #endif diff --git a/include/boost/preprocessor/inc.hpp b/include/boost/preprocessor/inc.hpp index 442c9b0..74550a8 100644 --- a/include/boost/preprocessor/inc.hpp +++ b/include/boost/preprocessor/inc.hpp @@ -13,20 +13,15 @@ * See http://www.boost.org for most recent version. */ -/** \file +/**

Increments X expanding to a single token.

-Click here to see the header. -*/ +

For example, BOOST_PP_INC(3) expands to 4 (a single token).

-/** Increments X expanding to a single token. +

BOOST_PP_INC() uses saturation arithmetic. Incrementing a +BOOST_PP_LIMIT_MAG yields a BOOST_PP_LIMIT_MAG.

-For example, BOOST_PP_INC(3) expands to 4 (a single token). - -BOOST_PP_INC() uses saturation arithmetic. Incrementing a -BOOST_PP_LIMIT_MAG yields a BOOST_PP_LIMIT_MAG. - -Only decimal integer literals in the range [0,BOOST_PP_LIMIT_MAG] are -supported. +

Only decimal integer literals in the range [0,BOOST_PP_LIMIT_MAG] are +supported.

*/ #define BOOST_PP_INC(X) BOOST_PP_INC_DELAY(X) @@ -163,6 +158,6 @@ supported. #define BOOST_PP_INC128 128 #endif -/** Obsolete. Use BOOST_PP_INC(). */ +/**

Obsolete. Use BOOST_PP_INC().

*/ #define BOOST_PREPROCESSOR_INC(X) BOOST_PP_INC(X) #endif diff --git a/include/boost/preprocessor/limits.hpp b/include/boost/preprocessor/limits.hpp index 33f562b..3de3bb2 100644 --- a/include/boost/preprocessor/limits.hpp +++ b/include/boost/preprocessor/limits.hpp @@ -13,41 +13,40 @@ * See http://www.boost.org for most recent version. */ -/** \file +/**

Expands to the number of dimensions of repeat supported by the +library.

-Click here to see the header. -*/ - -/** Expands to the number of dimensions of repeat supported by the library. - -The repeat macros are named BOOST_PP_REPEAT(), BOOST_PP_REPEAT_2ND(), -BOOST_PP_REPEAT_3RD(), ... +

The repeat macros are named BOOST_PP_REPEAT(), BOOST_PP_REPEAT_2ND(), +BOOST_PP_REPEAT_3RD(), ...

*/ #define BOOST_PP_LIMIT_DIM 3 -/** Expands to the maximum straight numeric literal supported by the library. +/**

Expands to the maximum straight numeric literal supported by the +library.

-This is also the limit of the repetition primitives (BOOST_PP_ENUM family and -BOOST_PP_REPEAT family). +

This is also the limit of the repetition primitives (BOOST_PP_ENUM family +and BOOST_PP_REPEAT family).

-NOTES: -- Only decimal integer literals in the range [0,BOOST_PP_LIMIT_MAG] -are supported. -- All arithmetic operations (ADD,SUB,MUL,DIV) use saturation arithmetic. -- The maximum repetition count supported by the library may not be reached -due to compiler limitations. +

NOTES:

+
    +
  • Only decimal integer literals in the range [0,BOOST_PP_LIMIT_MAG] + are supported. +
  • All arithmetic operations (ADD,SUB,MUL,DIV) use saturation arithmetic. +
  • The maximum repetition count supported by the library may not be reached + due to compiler limitations. +
*/ #define BOOST_PP_LIMIT_MAG 128 -/** Expands to the maximum tuple length supported by the library. */ +/**

Expands to the maximum tuple length supported by the library.

*/ #define BOOST_PP_LIMIT_TUPLE 16 -/** Obsolete. Use BOOST_PP_LIMIT_DIM. */ +/**

Obsolete. Use BOOST_PP_LIMIT_DIM.

*/ #define BOOST_PREPROCESSOR_LIMIT_DIM BOOST_PP_LIMIT_DIM -/** Obsolete. Use BOOST_PP_LIMIT_MAG. */ +/**

Obsolete. Use BOOST_PP_LIMIT_MAG.

*/ #define BOOST_PREPROCESSOR_LIMIT_MAG BOOST_PP_LIMIT_MAG -/** Obsolete. Use BOOST_PP_LIMIT_TUPLE. */ +/**

Obsolete. Use BOOST_PP_LIMIT_TUPLE.

*/ #define BOOST_PREPROCESSOR_LIMIT_TUPLE BOOST_PP_LIMIT_TUPLE #endif diff --git a/include/boost/preprocessor/list.hpp b/include/boost/preprocessor/list.hpp index 5f66120..1026375 100644 --- a/include/boost/preprocessor/list.hpp +++ b/include/boost/preprocessor/list.hpp @@ -13,12 +13,7 @@ * See http://www.boost.org for most recent version. */ -/** \file - -Click here to see the header. - -Includes all list headers. -*/ +/**

Includes all list headers.

*/ #include #include diff --git a/include/boost/preprocessor/list/adt.hpp b/include/boost/preprocessor/list/adt.hpp index 4c509a6..108086b 100644 --- a/include/boost/preprocessor/list/adt.hpp +++ b/include/boost/preprocessor/list/adt.hpp @@ -13,55 +13,55 @@ * See http://www.boost.org for most recent version. */ -/** \file +/**

This header defines the fundamental list operations.

-Click here to see the header. - -This header defines the fundamental list operations. - -NOTE: The internal representation of lists is hidden. Although there aren't -compelling reasons to change the representation, you should avoid writing -code that depends on the internal representation details. +

NOTE: The internal representation of lists is hidden. Although there +aren't compelling reasons to change the representation, you should avoid +writing code that depends on the internal representation details.

*/ #include #include -/** List constructor. +/**

List constructor.

-Lists are build using list constructors BOOST_PP_LIST_NIL and -BOOST_PP_LIST_CONS(). For example, +

Lists are build using list constructors BOOST_PP_LIST_NIL and +BOOST_PP_LIST_CONS(). For example,

-
\verbatim
+
   BOOST_PP_LIST_CONS(1,
   BOOST_PP_LIST_CONS(2,
   BOOST_PP_LIST_CONS(3,
   BOOST_PP_LIST_CONS(4,
   BOOST_PP_LIST_CONS(5,
   BOOST_PP_LIST_NIL)))))
-\endverbatim
+
-Short lists can also be build from tuples: +

Short lists can also be build from tuples:

-
\verbatim
+
   BOOST_PP_TUPLE_TO_LIST(5,(1,2,3,4,5))
-\endverbatim
+
-Both of the above lists contain 5 elements: 1, 2, 3, 4 and 5. +

Both of the above lists contain 5 elements: 1, 2, 3, 4 and 5.

*/ #define BOOST_PP_LIST_CONS(H,T) (H,T,1) -/** List nil constructor. +/**

List nil constructor.

See

-- BOOST_PP_LIST_CONS() +
    +
  • BOOST_PP_LIST_CONS() +
*/ #define BOOST_PP_LIST_NIL (_,_,0) -/** Expands to 1 if the list is not nil and 0 otherwise. +/**

Expands to 1 if the list is not nil and 0 otherwise.

See

-- BOOST_PP_LIST_IS_NIL() +
    +
  • BOOST_PP_LIST_IS_NIL() +
*/ #if !defined(BOOST_NO_COMPILER_CONFIG) && defined(__MWERKS__) && __MWERKS__ <= 0x2406 # define BOOST_PP_LIST_IS_CONS(L) BOOST_PP_TUPLE_ELEM(3,2,L) @@ -69,10 +69,12 @@ Both of the above lists contain 5 elements: 1, 2, 3, 4 and 5. # define BOOST_PP_LIST_IS_CONS(L) BOOST_PP_TUPLE3_ELEM2 L #endif -/** Expands to 1 if the list is nil and 0 otherwise. +/**

Expands to 1 if the list is nil and 0 otherwise.

See

-- BOOST_PP_LIST_IS_CONS() +
    +
  • BOOST_PP_LIST_IS_CONS() +
*/ #if !defined(BOOST_NO_COMPILER_CONFIG) && defined(__MWERKS__) && __MWERKS__ <= 0x2406 # define BOOST_PP_LIST_IS_NIL(L) BOOST_PP_NOT(BOOST_PP_TUPLE_ELEM(3,2,L)) @@ -80,18 +82,20 @@ Both of the above lists contain 5 elements: 1, 2, 3, 4 and 5. # define BOOST_PP_LIST_IS_NIL(L) BOOST_PP_NOT(BOOST_PP_TUPLE3_ELEM2 L) #endif -/** Expands to the first element of the list. The list must not be nil. +/**

Expands to the first element of the list. The list must not be nil.

-For example, +

For example,

-
\verbatim
+
   BOOST_PP_LIST_FIRST(BOOST_PP_TUPLE_TO_LIST(5,(1,2,3,4,5)))
-\endverbatim
+
-expands to 1. +

expands to 1.

See

-- BOOST_PP_LIST_REST() +
    +
  • BOOST_PP_LIST_REST() +
*/ #if !defined(BOOST_NO_COMPILER_CONFIG) && defined(__MWERKS__) && __MWERKS__ <= 0x2406 # define BOOST_PP_LIST_FIRST(L) BOOST_PP_TUPLE_ELEM(3,0,L) @@ -99,18 +103,20 @@ expands to 1. # define BOOST_PP_LIST_FIRST(L) BOOST_PP_TUPLE3_ELEM0 L #endif -/** Expands to a list of all but the first element of the list. The list must not be nil. +/**

Expands to a list of all but the first element of the list. The list must not be nil.

-For example, +

For example,

-
\verbatim
+
   BOOST_PP_LIST_REST(BOOST_PP_TUPLE_TO_LIST(5,(1,2,3,4,5)))
-\endverbatim
+
-expands to a list containing 2, 3, 4 and 5. +

expands to a list containing 2, 3, 4 and 5.

See

-- BOOST_PP_LIST_FIRST() +
    +
  • BOOST_PP_LIST_FIRST() +
*/ #if !defined(BOOST_NO_COMPILER_CONFIG) && defined(__MWERKS__) && __MWERKS__ <= 0x2406 # define BOOST_PP_LIST_REST(L) BOOST_PP_TUPLE_ELEM(3,1,L) diff --git a/include/boost/preprocessor/list/append.hpp b/include/boost/preprocessor/list/append.hpp index 1611b8f..03b4358 100644 --- a/include/boost/preprocessor/list/append.hpp +++ b/include/boost/preprocessor/list/append.hpp @@ -13,28 +13,25 @@ * See http://www.boost.org for most recent version. */ -/** \file - -Click here to see the header. -*/ - #include -/** Catenates two lists together. +/**

Catenates two lists together.

-For example, +

For example,

-
\verbatim
+
   BOOST_PP_LIST_APPEND
   ( BOOST_PP_TUPLE_TO_LIST(2,(1,2))
   , BOOST_PP_TUPLE_TO_LIST(2,(3,4))
   )
-\endverbatim
+
-produces a list containing 1, 2, 3 and 4. +

produces a list containing 1, 2, 3 and 4.

Uses

-- BOOST_PP_WHILE() +
    +
  • BOOST_PP_WHILE() +
*/ #define BOOST_PP_LIST_APPEND(L,P) BOOST_PP_LIST_APPEND_D(0,L,P) diff --git a/include/boost/preprocessor/list/at.hpp b/include/boost/preprocessor/list/at.hpp index c800db4..820ac2e 100644 --- a/include/boost/preprocessor/list/at.hpp +++ b/include/boost/preprocessor/list/at.hpp @@ -13,25 +13,22 @@ * See http://www.boost.org for most recent version. */ -/** \file - -Click here to see the header. -*/ - #include -/** Expands to the I:th element of the list L. The first element is at index 0. +/**

Expands to the I:th element of the list L. The first element is at index 0.

-For example, +

For example,

-
\verbatim
+
   BOOST_PP_LIST_AT(BOOST_PP_TUPLE_TO_LIST(3,(A,B,C)),1)
-\endverbatim
+
-expands to B. +

expands to B.

Uses

-- BOOST_PP_WHILE() +
    +
  • BOOST_PP_WHILE() +
*/ #define BOOST_PP_LIST_AT(L,I) BOOST_PP_LIST_AT_D(0,L,I) diff --git a/include/boost/preprocessor/list/cat.hpp b/include/boost/preprocessor/list/cat.hpp index 122572e..d17fa61 100644 --- a/include/boost/preprocessor/list/cat.hpp +++ b/include/boost/preprocessor/list/cat.hpp @@ -13,26 +13,23 @@ * See http://www.boost.org for most recent version. */ -/** \file - -Click here to see the header. -*/ - #include #include -/** Catenates all elements of the list. +/**

Catenates all elements of the list.

-For example, +

For example,

-
\verbatim
+
   BOOST_PP_LIST_CAT(BOOST_PP_TUPLE_TO_LIST(3,(1,2,3)))
-\endverbatim
+
-expands to 123. +

expands to 123.

Uses

-- BOOST_PP_WHILE() +
    +
  • BOOST_PP_WHILE() +
*/ #define BOOST_PP_LIST_CAT(L) BOOST_PP_LIST_CAT_D(0,L) diff --git a/include/boost/preprocessor/list/enum.hpp b/include/boost/preprocessor/list/enum.hpp index 02fcca3..245559c 100644 --- a/include/boost/preprocessor/list/enum.hpp +++ b/include/boost/preprocessor/list/enum.hpp @@ -13,30 +13,27 @@ * See http://www.boost.org for most recent version. */ -/** \file - -Click here to see the header. -*/ - #include #include -/** Converts the list to a comma separated list. +/**

Converts the list to a comma separated list.

-For example, +

For example,

-
\verbatim
+
   BOOST_PP_LIST_ENUM(BOOST_PP_TUPLE_TO_LIST(3,(A,B,C)))
-\endverbatim
+
-expands to: +

expands to:

-
\verbatim
+
   A, B, C
-\endverbatim
+

Uses

-- BOOST_PP_FOR(). +
    +
  • BOOST_PP_FOR() +
*/ #define BOOST_PP_LIST_ENUM(L) BOOST_PP_LIST_ENUM_R(0,L) diff --git a/include/boost/preprocessor/list/filter.hpp b/include/boost/preprocessor/list/filter.hpp index 71b9620..9d28fd1 100644 --- a/include/boost/preprocessor/list/filter.hpp +++ b/include/boost/preprocessor/list/filter.hpp @@ -13,25 +13,22 @@ * See http://www.boost.org for most recent version. */ -/** \file - -Click here to see the header. -*/ - #include -/** Expands to a list containing all the elements X of the list for which F(D,P,X) is true. +/**

Expands to a list containing all the elements X of the list for which F(D,P,X) is true.

-For example, +

For example,

-
\verbatim
+
   BOOST_PP_LIST_FILTER(BOOST_PP_NOT_EQUAL_D,2,BOOST_PP_TUPLE_TO_LIST(3,(1,2,3)))
-\endverbatim
+
-expands to a list containing 1 and 3. +

expands to a list containing 1 and 3.

Uses

-- BOOST_PP_WHILE() +
    +
  • BOOST_PP_WHILE() +
*/ #define BOOST_PP_LIST_FILTER(F,P,L) BOOST_PP_LIST_FILTER_D(0,F,P,L) diff --git a/include/boost/preprocessor/list/first_n.hpp b/include/boost/preprocessor/list/first_n.hpp index e83de72..405ce0d 100644 --- a/include/boost/preprocessor/list/first_n.hpp +++ b/include/boost/preprocessor/list/first_n.hpp @@ -13,27 +13,24 @@ * See http://www.boost.org for most recent version. */ -/** \file - -Click here to see the header. -*/ - #include #include #include -/** Expands to a list of the first N elements of the list. +/**

Expands to a list of the first N elements of the list.

-For example, +

For example,

-
\verbatim
+
   BOOST_PP_LIST_FIRST_N(2,BOOST_PP_TUPLE_TO_LIST(4,(+,-,*,/)))
-\endverbatim
+
-expands to a list containing + and -. +

expands to a list containing + and -.

Uses

-- BOOST_PP_WHILE() +
    +
  • BOOST_PP_WHILE() +
*/ #define BOOST_PP_LIST_FIRST_N(N,L) BOOST_PP_LIST_FIRST_N_D(0,N,L) diff --git a/include/boost/preprocessor/list/fold_left.hpp b/include/boost/preprocessor/list/fold_left.hpp index 5e3d44b..595d346 100644 --- a/include/boost/preprocessor/list/fold_left.hpp +++ b/include/boost/preprocessor/list/fold_left.hpp @@ -13,40 +13,39 @@ * See http://www.boost.org for most recent version. */ -/** \file - -Click here to see the header. -*/ - #include #include -/** Iterates F(D,P,X) for each element X of the list L (from the left or the start of the list). +/**

Iterates F(D,P,X) for each element X of the list L (from the left or the start of the list).

-In other words, +

In other words,

-
\verbatim
+
   BOOST_PP_LIST_FOLD_LEFT(F,P,L)
-\endverbatim
+
-expands to: +

expands to:

-
\verbatim
+
   F
   ( D
   , ... F(D, F(D,P,BOOST_PP_LIST_AT(L,0)), BOOST_PP_LIST_AT(L,1)) ...
   , BOOST_PP_LIST_AT(L,BOOST_PP_DEC(BOOST_PP_LIST_SIZE(L))
   )
-\endverbatim
+
-Note that folding, or accumulation, is a very general pattern of computation. -Most list operations can be implemented in terms of folding. +

Note that folding, or accumulation, is a very general pattern of computation. +Most list operations can be implemented in terms of folding.

See

-- BOOST_PP_LIST_FOLD_RIGHT() +
    +
  • BOOST_PP_LIST_FOLD_RIGHT() +

Uses

-- BOOST_PP_WHILE() +
    +
  • BOOST_PP_WHILE() +
*/ #define BOOST_PP_LIST_FOLD_LEFT(F,P,L) BOOST_PP_LIST_FOLD_LEFT_D(0,F,P,L) diff --git a/include/boost/preprocessor/list/fold_right.hpp b/include/boost/preprocessor/list/fold_right.hpp index 783a210..1eb8643 100644 --- a/include/boost/preprocessor/list/fold_right.hpp +++ b/include/boost/preprocessor/list/fold_right.hpp @@ -13,24 +13,19 @@ * See http://www.boost.org for most recent version. */ -/** \file - -Click here to see the header. -*/ - #include -/** Iterates F(D,X,P) for each element X of the list L (from the right or the end of the list). +/**

Iterates F(D,X,P) for each element X of the list L (from the right or the end of the list).

-In other words, +

In other words,

-
\verbatim
+
   BOOST_PP_LIST_FOLD_RIGHT(F,L,P)
-\endverbatim
+
-expands to: +

expands to:

-
\verbatim
+
   F
   ( D
   , BOOST_PP_LIST_AT(L,0)
@@ -44,13 +39,17 @@ expands to:
           )
         ) ...
   )
-\endverbatim
+

See

-- BOOST_PP_LIST_FOLD_LEFT() +
    +
  • BOOST_PP_LIST_FOLD_LEFT() +

Uses

-- BOOST_PP_WHILE() +
    +
  • BOOST_PP_WHILE() +
*/ #define BOOST_PP_LIST_FOLD_RIGHT(F,L,P) BOOST_PP_LIST_FOLD_RIGHT_D(0,F,L,P) diff --git a/include/boost/preprocessor/list/for_each.hpp b/include/boost/preprocessor/list/for_each.hpp index 4dd3b77..d5d0d9f 100644 --- a/include/boost/preprocessor/list/for_each.hpp +++ b/include/boost/preprocessor/list/for_each.hpp @@ -13,30 +13,29 @@ * See http://www.boost.org for most recent version. */ -/** \file - -Click here to see the header. -*/ - #include #include -/** Repeats F(R,P,BOOST_PP_LIST_AT(L,I)) for each I = [0,BOOST_PP_LIST_SIZE(L)[. +/**

Repeats F(R,P,BOOST_PP_LIST_AT(L,I)) for each I = [0,BOOST_PP_LIST_SIZE(L)[.

-In other words, expands to the sequence: +

In other words, expands to the sequence:

-
\verbatim
+
   F(R,P,BOOST_PP_LIST_AT(L,0))
   F(R,P,BOOST_PP_LIST_AT(L,1))
   ...
   F(R,P,BOOST_PP_LIST_AT(L,BOOST_PP_DEC(BOOST_PP_LIST_SIZE(L))))
-\endverbatim
+

Example

-- catch_builtin.cpp +

Uses

-- BOOST_PP_FOR() +
    +
  • BOOST_PP_FOR() +
*/ #define BOOST_PP_LIST_FOR_EACH(F,P,L) BOOST_PP_LIST_FOR_EACH_R(0,F,P,L) diff --git a/include/boost/preprocessor/list/for_each_product.hpp b/include/boost/preprocessor/list/for_each_product.hpp index dc4f116..7b9cacd 100644 --- a/include/boost/preprocessor/list/for_each_product.hpp +++ b/include/boost/preprocessor/list/for_each_product.hpp @@ -13,30 +13,30 @@ * See http://www.boost.org for most recent version. */ -/** \file - -Click here to see the header. -*/ - #include #include -/** THIS IS NOT YET FULLY DOCUMENTED - DO NOT USE! +/**

THIS IS NOT YET FULLY DOCUMENTED - DO NOT USE!

-Repeats F(R,P,X) for each element X of the cartesian product of the lists LL. +

Repeats F(R,P,X) for each element X of the cartesian product of the lists LL.

-This macro is useful for generating code to avoid combinatorial explosion. +

This macro is useful for generating code to avoid combinatorial explosion.

-LL is a list of lists. - -X is an element of the cartesian product of the lists LL. +
    +
  • LL is a list of lists. +
  • X is an element of the cartesian product of the lists LL. +

Example

-- is_integral.cpp -- array_arithmetic.c +

Uses

-- BOOST_PP_FOR() +
    +
  • BOOST_PP_FOR() +
*/ #define BOOST_PP_LIST_FOR_EACH_PRODUCT(F,P,LL) BOOST_PP_LIST_FOR_EACH_PRODUCT_R(0,F,P,LL) diff --git a/include/boost/preprocessor/list/rest_n.hpp b/include/boost/preprocessor/list/rest_n.hpp index f3c252c..7bcc935 100644 --- a/include/boost/preprocessor/list/rest_n.hpp +++ b/include/boost/preprocessor/list/rest_n.hpp @@ -13,27 +13,24 @@ * See http://www.boost.org for most recent version. */ -/** \file - -Click here to see the header. -*/ - #include #include #include -/** Expands to a list of all but the first N elements of the list. +/**

Expands to a list of all but the first N elements of the list.

-For example, +

For example,

-
\verbatim
+
   BOOST_PP_LIST_REST_N(2,BOOST_PP_TUPLE_TO_LIST(4,(+,-,*,/)))
-\endverbatim
+
-expands to a list containing * and /. +

expands to a list containing * and /.

Uses

-- BOOST_PP_WHILE() +
    +
  • BOOST_PP_WHILE() +
*/ #define BOOST_PP_LIST_REST_N(N,L) BOOST_PP_LIST_REST_N_D(0,N,L) diff --git a/include/boost/preprocessor/list/reverse.hpp b/include/boost/preprocessor/list/reverse.hpp index 4b4e796..b6150b0 100644 --- a/include/boost/preprocessor/list/reverse.hpp +++ b/include/boost/preprocessor/list/reverse.hpp @@ -13,25 +13,22 @@ * See http://www.boost.org for most recent version. */ -/** \file - -Click here to see the header. -*/ - #include -/** List reversal. +/**

List reversal.

-For example, +

For example,

-
\verbatim
+
   BOOST_PP_LIST_REVERSE(BOOST_PP_TUPLE_TO_LIST(3,(A,B,C)))
-\endverbatim
+
-expands to a list containing C, B and A. +

expands to a list containing C, B and A.

Uses

-- BOOST_PP_WHILE() +
    +
  • BOOST_PP_WHILE() +
*/ #define BOOST_PP_LIST_REVERSE(L) BOOST_PP_LIST_REVERSE_D(0,L) diff --git a/include/boost/preprocessor/list/size.hpp b/include/boost/preprocessor/list/size.hpp index 1a5f251..f94cfe1 100644 --- a/include/boost/preprocessor/list/size.hpp +++ b/include/boost/preprocessor/list/size.hpp @@ -13,26 +13,23 @@ * See http://www.boost.org for most recent version. */ -/** \file - -Click here to see the header. -*/ - #include #include -/** Expands to the number of elements in the list. +/**

Expands to the number of elements in the list.

-For example, +

For example,

-
\verbatim
+
   BOOST_PP_LIST_SIZE(BOOST_PP_TUPLE_TO_LIST(3,(A,B,C)))
-\endverbatim
+
-expands to 3. +

expands to 3.

Uses

-- BOOST_PP_WHILE() +
    +
  • BOOST_PP_WHILE() +
*/ #define BOOST_PP_LIST_SIZE(L) BOOST_PP_LIST_SIZE_D(0,L) diff --git a/include/boost/preprocessor/list/to_tuple.hpp b/include/boost/preprocessor/list/to_tuple.hpp index d0bf3a0..94f37ba 100644 --- a/include/boost/preprocessor/list/to_tuple.hpp +++ b/include/boost/preprocessor/list/to_tuple.hpp @@ -13,29 +13,26 @@ * See http://www.boost.org for most recent version. */ -/** \file - -Click here to see the header. -*/ - #include #include -/** Converts the list to a tuple. +/**

Converts the list to a tuple.

-For example, +

For example,

-
\verbatim
+
   BOOST_PP_LIST_TO_TUPLE(BOOST_PP_TUPLE_TO_LIST(3,(A,B,C)))
-\endverbatim
+
-expands to (A,B,C). +

expands to (A,B,C).

-NOTE: The supported size of the list being converted to a tuple is limited by -BOOST_PP_LIMIT_MAG rather than BOOST_PP_LIMIT_TUPLE. +

NOTE: The supported size of the list being converted to a tuple is limited by +BOOST_PP_LIMIT_MAG rather than BOOST_PP_LIMIT_TUPLE.

Uses

-- BOOST_PP_FOR() +
    +
  • BOOST_PP_FOR() +
*/ #define BOOST_PP_LIST_TO_TUPLE(L) BOOST_PP_LIST_TO_TUPLE_R(0,L) diff --git a/include/boost/preprocessor/list/transform.hpp b/include/boost/preprocessor/list/transform.hpp index ad3cec3..1751028 100644 --- a/include/boost/preprocessor/list/transform.hpp +++ b/include/boost/preprocessor/list/transform.hpp @@ -13,35 +13,32 @@ * See http://www.boost.org for most recent version. */ -/** \file - -Click here to see the header. -*/ - #include -/** Applies the macro F(D,P,X) to each element X of the list producing a new list. +/**

Applies the macro F(D,P,X) to each element X of the list producing a new list.

-In other words, BOOST_PP_LIST_TRANSFORM(F,P,L) expands to same as: +

In other words, BOOST_PP_LIST_TRANSFORM(F,P,L) expands to same as:

-
\verbatim
+
   BOOST_PP_LIST_CONS(F(D,P,BOOST_PP_LIST_AT(L,0)),
   BOOST_PP_LIST_CONS(F(D,P,BOOST_PP_LIST_AT(L,1)),
   ...
   BOOST_PP_LIST_CONS(F(D,P,BOOST_PP_LIST_AT(L,BOOST_PP_DEC(BOOST_PP_LIST_SIZE(L)))),
   BOOST_PP_LIST_NIL) ... ))
-\endverbatim
+
-For example, +

For example,

-
\verbatim
+
   BOOST_PP_LIST_TRANSFORM(BOOST_PP_ADD_D,2,BOOST_PP_TUPLE_TO_LIST(2,(1,2)))
-\endverbatim
+
-expands to a list containing 3 and 4. +

expands to a list containing 3 and 4.

Uses

-- BOOST_PP_WHILE() +
    +
  • BOOST_PP_WHILE() +
*/ #define BOOST_PP_LIST_TRANSFORM(F,P,L) BOOST_PP_LIST_TRANSFORM_D(0,F,P,L) diff --git a/include/boost/preprocessor/logical.hpp b/include/boost/preprocessor/logical.hpp index d2a0b8a..daf8aa1 100644 --- a/include/boost/preprocessor/logical.hpp +++ b/include/boost/preprocessor/logical.hpp @@ -13,12 +13,7 @@ * See http://www.boost.org for most recent version. */ -/** \file - -Click here to see the header. - -Includes all logical headers. -*/ +/**

Includes all logical headers.

*/ #include #include diff --git a/include/boost/preprocessor/logical/and.hpp b/include/boost/preprocessor/logical/and.hpp index 7efa084..3928675 100644 --- a/include/boost/preprocessor/logical/and.hpp +++ b/include/boost/preprocessor/logical/and.hpp @@ -13,19 +13,14 @@ * See http://www.boost.org for most recent version. */ -/** \file - -Click here to see the header. -*/ - #include -/** Expands to the logical AND of the operands. +/**

Expands to the logical AND of the operands.

-For example, BOOST_PP_AND(0,5) expands to 0 (a single token). +

For example, BOOST_PP_AND(0,5) expands to 0 (a single token).

*/ #define BOOST_PP_AND(X,Y) BOOST_PP_NOR(BOOST_PP_NOT(X),BOOST_PP_NOT(Y)) -/** Obsolete. Use BOOST_PP_AND(). */ +/**

Obsolete. Use BOOST_PP_AND().

*/ #define BOOST_PREPROCESSOR_AND(X,Y) BOOST_PP_AND(X,Y) #endif diff --git a/include/boost/preprocessor/logical/bool.hpp b/include/boost/preprocessor/logical/bool.hpp index 8e6b069..cb12e0d 100644 --- a/include/boost/preprocessor/logical/bool.hpp +++ b/include/boost/preprocessor/logical/bool.hpp @@ -13,12 +13,7 @@ * See http://www.boost.org for most recent version. */ -/** \file - -Click here to see the header. -*/ - -/** Expands to 0 if X == 0 and 1 if X != 0. */ +/**

Expands to 0 if X == 0 and 1 if X != 0.

*/ #define BOOST_PP_BOOL(X) BOOST_PP_BOOL_DELAY(X) #ifndef DOXYGEN_SHOULD_SKIP_THIS @@ -157,6 +152,6 @@ #define BOOST_PP_BOOL128 1 #endif -/** Obsolete. Use BOOST_PP_BOOL(). */ +/**

Obsolete. Use BOOST_PP_BOOL().

*/ #define BOOST_PREPROCESSOR_BOOL(X) BOOST_PP_BOOL(X) #endif diff --git a/include/boost/preprocessor/logical/nor.hpp b/include/boost/preprocessor/logical/nor.hpp index 0326363..8994f74 100644 --- a/include/boost/preprocessor/logical/nor.hpp +++ b/include/boost/preprocessor/logical/nor.hpp @@ -13,16 +13,11 @@ * See http://www.boost.org for most recent version. */ -/** \file - -Click here to see the header. -*/ - #include -/** Expands to the logical NEITHER OR of the operands. +/**

Expands to the logical NEITHER OR of the operands.

-For example, BOOST_PP_NOR(0,5) expands to 0 (a single token). +

For example, BOOST_PP_NOR(0,5) expands to 0 (a single token).

*/ #define BOOST_PP_NOR(X,Y) BOOST_PP_NOR_BOOL(BOOST_PP_BOOL(X),BOOST_PP_BOOL(Y)) @@ -35,6 +30,6 @@ For example, BOOST_PP_NOR(0,5) expands to 0 (a single token). #define BOOST_PP_NOR_BOOL11 0 #endif -/** Obsolete. Use BOOST_PP_NOR(). */ +/**

Obsolete. Use BOOST_PP_NOR().

*/ #define BOOST_PREPROCESSOR_NOR(X,Y) BOOST_PP_NOR(X,Y) #endif diff --git a/include/boost/preprocessor/logical/not.hpp b/include/boost/preprocessor/logical/not.hpp index c4f8376..22e1e2f 100644 --- a/include/boost/preprocessor/logical/not.hpp +++ b/include/boost/preprocessor/logical/not.hpp @@ -13,19 +13,14 @@ * See http://www.boost.org for most recent version. */ -/** \file - -Click here to see the header. -*/ - #include -/** Expands to the logical NOT of the operand. +/**

Expands to the logical NOT of the operand.

-For example, BOOST_PP_NOT(0) expands to 1 (a single token). +

For example, BOOST_PP_NOT(0) expands to 1 (a single token).

*/ #define BOOST_PP_NOT(X) BOOST_PP_NOR(X,X) -/** Obsolete. Use BOOST_PP_NOT(). */ +/**

Obsolete. Use BOOST_PP_NOT().

*/ #define BOOST_PREPROCESSOR_NOT(X) BOOST_PP_NOT(X) #endif diff --git a/include/boost/preprocessor/logical/or.hpp b/include/boost/preprocessor/logical/or.hpp index 93af2e6..064178f 100644 --- a/include/boost/preprocessor/logical/or.hpp +++ b/include/boost/preprocessor/logical/or.hpp @@ -13,19 +13,14 @@ * See http://www.boost.org for most recent version. */ -/** \file - -Click here to see the header. -*/ - #include -/** Expands to the logical OR of the operands. +/**

Expands to the logical OR of the operands.

-For example, BOOST_PP_OR(0,2) expands to 1 (a single token). +

For example, BOOST_PP_OR(0,2) expands to 1 (a single token).

*/ #define BOOST_PP_OR(X,Y) BOOST_PP_NOT(BOOST_PP_NOR(X,Y)) -/** Obsolete. Use BOOST_PP_OR(). */ +/**

Obsolete. Use BOOST_PP_OR().

*/ #define BOOST_PREPROCESSOR_OR(X,Y) BOOST_PP_OR(X,Y) #endif diff --git a/include/boost/preprocessor/logical/xor.hpp b/include/boost/preprocessor/logical/xor.hpp index d428c71..767d052 100644 --- a/include/boost/preprocessor/logical/xor.hpp +++ b/include/boost/preprocessor/logical/xor.hpp @@ -13,19 +13,14 @@ * See http://www.boost.org for most recent version. */ -/** \file - -Click here to see the header. -*/ - #include -/** Expands to the logical EXCLUSIVE OR of the operands. +/**

Expands to the logical EXCLUSIVE OR of the operands.

-For example, BOOST_PP_XOR(1,2) expands to 0 (a single token). +

For example, BOOST_PP_XOR(1,2) expands to 0 (a single token).

*/ #define BOOST_PP_XOR(X,Y) BOOST_PP_NOR(BOOST_PP_NOR(X,Y),BOOST_PP_AND(X,Y)) -/** Obsolete. Use BOOST_PP_XOR(). */ +/**

Obsolete. Use BOOST_PP_XOR().

*/ #define BOOST_PREPROCESSOR_XOR(X,Y) BOOST_PP_XOR(X,Y) #endif diff --git a/include/boost/preprocessor/max.hpp b/include/boost/preprocessor/max.hpp index 4bcebd2..e4cabc4 100644 --- a/include/boost/preprocessor/max.hpp +++ b/include/boost/preprocessor/max.hpp @@ -13,20 +13,17 @@ * See http://www.boost.org for most recent version. */ -/** \file - -Click here to see the header. -*/ - #include #include -/** Expands to the maximum of X and Y. +/**

Expands to the maximum of X and Y.

-For example, BOOST_PP_MAX(5,7) expands to 7 (a single token). +

For example, BOOST_PP_MAX(5,7) expands to 7 (a single token).

Uses

-- BOOST_PP_WHILE() +
    +
  • BOOST_PP_WHILE() +
*/ #define BOOST_PP_MAX(X,Y) BOOST_PP_MAX_D(0,X,Y) @@ -34,6 +31,6 @@ For example, BOOST_PP_MAX(5,7) expands to 7 (a single token). #define BOOST_PP_MAX_D(D,X,Y) BOOST_PP_IF(BOOST_PP_LESS_EQUAL_D(D,X,Y),Y,X) #endif -/** Obsolete. Use BOOST_PP_MAX(). */ +/**

Obsolete. Use BOOST_PP_MAX().

*/ #define BOOST_PREPROCESSOR_MAX(X,Y) BOOST_PP_MAX(X,Y) #endif diff --git a/include/boost/preprocessor/min.hpp b/include/boost/preprocessor/min.hpp index 3c4b2b5..a66ad54 100644 --- a/include/boost/preprocessor/min.hpp +++ b/include/boost/preprocessor/min.hpp @@ -13,20 +13,17 @@ * See http://www.boost.org for most recent version. */ -/** \file - -Click here to see the header. -*/ - #include #include -/** Expands to the minimum of X and Y. +/**

Expands to the minimum of X and Y.

-For example, BOOST_PP_MIN(5,7) expands to 5 (a single token). +

For example, BOOST_PP_MIN(5,7) expands to 5 (a single token).

Uses

-- BOOST_PP_WHILE() +
    +
  • BOOST_PP_WHILE() +
*/ #define BOOST_PP_MIN(X,Y) BOOST_PP_MIN_D(0,X,Y) @@ -34,6 +31,6 @@ For example, BOOST_PP_MIN(5,7) expands to 5 (a single token). #define BOOST_PP_MIN_D(D,X,Y) BOOST_PP_IF(BOOST_PP_LESS_EQUAL_D(D,Y,X),Y,X) #endif -/** Obsolete. Use BOOST_PP_MIN(). */ +/**

Obsolete. Use BOOST_PP_MIN().

*/ #define BOOST_PREPROCESSOR_MIN(X,Y) BOOST_PP_MIN(X,Y) #endif diff --git a/include/boost/preprocessor/repeat.hpp b/include/boost/preprocessor/repeat.hpp index 4f1f35c..fa95bcf 100644 --- a/include/boost/preprocessor/repeat.hpp +++ b/include/boost/preprocessor/repeat.hpp @@ -13,30 +13,29 @@ * See http://www.boost.org for most recent version. */ -/** \file +/**

Repeats the macro M(I,P) for I = [0,N-1[.

-Click here to see the header. -*/ +

In other words, expands to the sequence:

-/** Repeats the macro M(I,P) for I = [0,N-1[. - -In other words, expands to the sequence: - -
\verbatim
+
   M(0,P) M(1,P) ... M(N-1,P)
-\endverbatim
+

2D and 3D repetition

-2D and 3D repetition are supported with the BOOST_PP_REPEAT_2ND() and -BOOST_PP_REPEAT_3RD() macros. +

2D and 3D repetition are supported with the BOOST_PP_REPEAT_2ND() and +BOOST_PP_REPEAT_3RD() macros.

Example

-- repeat_2d.c +

See

-- BOOST_PP_FOR() -- BOOST_PP_LIMIT_MAG +
    +
  • BOOST_PP_FOR() +
  • BOOST_PP_LIMIT_MAG +
*/ #define BOOST_PP_REPEAT(N,M,P) BOOST_PP_REPEAT_DELAY(N,M,P) @@ -173,6 +172,6 @@ BOOST_PP_REPEAT_3RD() macros. #define BOOST_PP_REPEAT128(M,P) BOOST_PP_REPEAT127(M,P) M(127,P) #endif -/** Obsolete. Use BOOST_PP_REPEAT(). */ +/**

Obsolete. Use BOOST_PP_REPEAT().

*/ #define BOOST_PREPROCESSOR_REPEAT(N,M,P) BOOST_PP_REPEAT(N,M,P) #endif diff --git a/include/boost/preprocessor/repeat_2nd.hpp b/include/boost/preprocessor/repeat_2nd.hpp index a4ab7ae..b273d5d 100644 --- a/include/boost/preprocessor/repeat_2nd.hpp +++ b/include/boost/preprocessor/repeat_2nd.hpp @@ -13,12 +13,7 @@ * See http://www.boost.org for most recent version. */ -/** \file - -Click here to see the header. -*/ - -/** Same as BOOST_PP_REPEAT(), but implemented independently. */ +/**

Same as BOOST_PP_REPEAT(), but implemented independently.

*/ #define BOOST_PP_REPEAT_2ND(N,M,P) BOOST_PP_REPEAT_2ND_DELAY(N,M,P) #ifndef DOXYGEN_SHOULD_SKIP_THIS @@ -154,6 +149,6 @@ #define BOOST_PP_REPEAT_2ND128(M,P) BOOST_PP_REPEAT_2ND127(M,P) M(127,P) #endif -/** Obsolete. Use BOOST_PP_REPEAT_2ND(). */ +/**

Obsolete. Use BOOST_PP_REPEAT_2ND().

*/ #define BOOST_PREPROCESSOR_REPEAT_2ND(N,M,P) BOOST_PP_REPEAT_2ND(N,M,P) #endif diff --git a/include/boost/preprocessor/repeat_3rd.hpp b/include/boost/preprocessor/repeat_3rd.hpp index ce93604..98a5a18 100644 --- a/include/boost/preprocessor/repeat_3rd.hpp +++ b/include/boost/preprocessor/repeat_3rd.hpp @@ -13,12 +13,7 @@ * See http://www.boost.org for most recent version. */ -/** \file - -Click here to see the header. -*/ - -/** Same as BOOST_PP_REPEAT(), but implemented independently. */ +/**

Same as BOOST_PP_REPEAT(), but implemented independently.

*/ #define BOOST_PP_REPEAT_3RD(N,M,P) BOOST_PP_REPEAT_3RD_DELAY(N,M,P) #ifndef DOXYGEN_SHOULD_SKIP_THIS @@ -154,6 +149,6 @@ #define BOOST_PP_REPEAT_3RD128(M,P) BOOST_PP_REPEAT_3RD127(M,P) M(127,P) #endif -/** Obsolete. Use BOOST_PP_REPEAT_3RD(). */ +/**

Obsolete. Use BOOST_PP_REPEAT_3RD().

*/ #define BOOST_PREPROCESSOR_REPEAT_3RD(N,M,P) BOOST_PP_REPEAT_3RD(N,M,P) #endif diff --git a/include/boost/preprocessor/stringize.hpp b/include/boost/preprocessor/stringize.hpp index bf64584..e31b0f3 100644 --- a/include/boost/preprocessor/stringize.hpp +++ b/include/boost/preprocessor/stringize.hpp @@ -13,37 +13,32 @@ * See http://www.boost.org for most recent version. */ -/** \file +/**

Delays the stringization of X.

-Click here to see the header. -*/ +

For example,

-/** Delays the stringization of X. +
+  #define NOTE(STR)\
+    message(__FILE__ "(" BOOST_PP_STRINGIZE(__LINE__) ") : " STR)
 
-For example,
+  // ...
 
-
\verbatim
-#define NOTE(STR)\
-  message(__FILE__ "(" BOOST_PP_STRINGIZE(__LINE__) ") : " STR)
+  #pragma NOTE("TBD!")
+
-// ... +

expands to:

-#pragma NOTE("TBD!") -\endverbatim
- -expands to: - -
\verbatim
+
   #pragma message("examples.cpp" "(" "20" ") : " "TBD!")
-\endverbatim
+
-The use of BOOST_PP_STRINGIZE() above lets the PP expand the __LINE__ +

The use of BOOST_PP_STRINGIZE() above lets the PP expand the __LINE__ before stringizing it. If # would be used directly, the code would -expand to: +expand to:

-
\verbatim
+
   #pragma message("examples.cpp" "(" "__LINE__" ") : " "TBD!")
-\endverbatim
+
*/ #define BOOST_PP_STRINGIZE(X) BOOST_PP_STRINGIZE_DELAY(X) @@ -52,6 +47,6 @@ expand to: #define BOOST_PP_DO_STRINGIZE(X) #X #endif -/** Obsolete. Use BOOST_PP_STRINGIZE(). */ +/**

Obsolete. Use BOOST_PP_STRINGIZE().

*/ #define BOOST_PREPROCESSOR_STRINGIZE(E) BOOST_PP_STRINGIZE(E) #endif diff --git a/include/boost/preprocessor/tuple.hpp b/include/boost/preprocessor/tuple.hpp index 6647652..cac67d0 100644 --- a/include/boost/preprocessor/tuple.hpp +++ b/include/boost/preprocessor/tuple.hpp @@ -13,12 +13,7 @@ * See http://www.boost.org for most recent version. */ -/** \file - -Click here to see the header. - -Includes all tuple headers. -*/ +/**

Includes all tuple headers.

*/ #include #include diff --git a/include/boost/preprocessor/tuple/eat.hpp b/include/boost/preprocessor/tuple/eat.hpp index 5975f8c..b0337fc 100644 --- a/include/boost/preprocessor/tuple/eat.hpp +++ b/include/boost/preprocessor/tuple/eat.hpp @@ -13,23 +13,18 @@ * See http://www.boost.org for most recent version. */ -/** \file +/**

Expands to a macro that eats a tuple of the specified length.

-Click here to see the header. -*/ +

BOOST_PP_TUPLE_EAT() is designed to be used with BOOST_PP_IF() like +BOOST_PP_EMPTY().

-/** Expands to a macro that eats a tuple of the specified length. +

For example,

-BOOST_PP_TUPLE_EAT() is designed to be used with BOOST_PP_IF() like -BOOST_PP_EMPTY(). - -For example, - -
\verbatim
+
   BOOST_PP_IF(0,BOOST_PP_ENUM_PARAMS,BOOST_PP_TUPLE_EAT(2))(10,P)
-\endverbatim
+
-expands to nothing. +

expands to nothing.

*/ #define BOOST_PP_TUPLE_EAT(N) BOOST_PP_TUPLE_EAT_DELAY(N) diff --git a/include/boost/preprocessor/tuple/elem.hpp b/include/boost/preprocessor/tuple/elem.hpp index 0016283..6b1e869 100644 --- a/include/boost/preprocessor/tuple/elem.hpp +++ b/include/boost/preprocessor/tuple/elem.hpp @@ -13,33 +13,30 @@ * See http://www.boost.org for most recent version. */ -/** \file +/**

Expands to the I:th element of an N-tuple.

-Click here to see the header. -*/ +

For example,

-/** Expands to the I:th element of an N-tuple. - -For example, - -
\verbatim
+
   BOOST_PP_TUPLE_ELEM(2,1,(A,B))
-\endverbatim
+
-expands to B. +

expands to B.

-Tuples can be used for representing structured data. +

Tuples can be used for representing structured data.

-Examples of tuples: +

Examples of tuples:

-
\verbatim
+
   2-tuple: (A, B)
   3-tuple: (1, 2, 3)
   4-tuple: (A B C, D, EF, 34)
-\endverbatim
+

See

-- BOOST_PP_LIMIT_TUPLE +
    +
  • BOOST_PP_LIMIT_TUPLE +
*/ #define BOOST_PP_TUPLE_ELEM(N,I,T) BOOST_PP_TUPLE_ELEM_DELAY(N,I,T) @@ -215,6 +212,6 @@ Examples of tuples: #define BOOST_PP_TUPLE16_ELEM15(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P) P #endif -/** Obsolete. Use BOOST_PP_TUPLE_ELEM(). */ +/**

Obsolete. Use BOOST_PP_TUPLE_ELEM().

*/ #define BOOST_PREPROCESSOR_TUPLE_ELEM(N,I,T) BOOST_PP_TUPLE_ELEM(N,I,T) #endif diff --git a/include/boost/preprocessor/tuple/to_list.hpp b/include/boost/preprocessor/tuple/to_list.hpp index 5166484..b1902e1 100644 --- a/include/boost/preprocessor/tuple/to_list.hpp +++ b/include/boost/preprocessor/tuple/to_list.hpp @@ -13,18 +13,15 @@ * See http://www.boost.org for most recent version. */ -/** \file - -Click here to see the header. -*/ - #include -/** Converts a tuple to a list. +/**

Converts a tuple to a list.

See

-- BOOST_PP_LIST_CONS() -- BOOST_PP_LIMIT_TUPLE +
    +
  • BOOST_PP_LIST_CONS() +
  • BOOST_PP_LIMIT_TUPLE +
*/ #define BOOST_PP_TUPLE_TO_LIST(N,T) BOOST_PP_TUPLE_TO_LIST_DELAY(N,T) diff --git a/include/boost/preprocessor/while.hpp b/include/boost/preprocessor/while.hpp index f22874f..129bc3d 100644 --- a/include/boost/preprocessor/while.hpp +++ b/include/boost/preprocessor/while.hpp @@ -13,56 +13,54 @@ * See http://www.boost.org for most recent version. */ -/** \file - -Click here to see the header. -*/ - #include #include -/** Iterates F(D,X) while C(D,X) is true. +/**

Iterates F(D,X) while C(D,X) is true.

-In other words, expands to: +

In other words, expands to:

-
\verbatim
+
   F(D, ... F(D, F(D,X) ) ... )
-\endverbatim
+
-The depth of iteration is determined by C(D,X). +

The depth of iteration is determined by C(D,X).

Legend

+
    +
  • X is the current state of iteration. The state is usually a tuple. +
  • C is the condition for iteration. It must expand to a decimal + integer literal. +
  • F is the iterated macro. Note that if the state is a tuple, then + F(D,X) usually expands to a tuple of the same number of elements. +
  • D is the recursion depth and should only be used as a parameter + 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 + 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. +
-- X is the current state of iteration. The state is usually a tuple. -- C is the condition for iteration. It must expand to a decimal -integer literal. -- F is the iterated macro. Note that if the state is a tuple, then -F(D,X) usually expands to a tuple of the same number of elements. -- D is the recursion depth and should only be used as a parameter -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 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. - -NOTE: The value of the D parameter may exceed BOOST_PP_LIMIT_MAG. +

NOTE: The value of the D parameter may exceed BOOST_PP_LIMIT_MAG.

Caveat

-Using BOOST_PP_WHILE() is a bit tricky. This is due to the C++ preprocessor +

Using BOOST_PP_WHILE() is a bit tricky. This is due to the C++ preprocessor limitations. It is recommended to take a look at the implementations of the various PREPROCESSOR library primitives such as BOOST_PP_ADD() for additional -examples. +examples.

Example

+ -- count_down.c +

For a more complex example, let's take a look at an implementation of +BOOST_PP_MUL().

-For a more complex example, let's take a look at an implementation of -BOOST_PP_MUL(). - -
\verbatim
+
   #define BOOST_PP_MUL(X,Y) BOOST_PP_MUL_D(0,X,Y)
   // Since the macro is implemented using WHILE, the actual implementation
   // takes a depth as a parameter so that it can be called inside a WHILE.
@@ -95,12 +93,13 @@ BOOST_PP_MUL().
   // , The multiplier is retained without change.
   // , The counter is decreased.
   // )
-\endverbatim
+

Implementation rationale

- -- The maximum iteration depth is greater than 2*BOOST_PP_LIMIT_MAG to make -it possible to compute N*N functions. +
    +
  • The maximum iteration depth is greater than 2*BOOST_PP_LIMIT_MAG to make + it possible to compute N*N functions. +
*/ #define BOOST_PP_WHILE(C,F,X) BOOST_PP_WHILE_C(C(1,X),0,X)(C,F,F(1,X))